(g)awk의 int()함수에 대해 궁금한 것이 있습니다.
글쓴이: 박한산 / 작성시간: 목, 2004/06/24 - 8:00오후
user% awk '{printf("%f",int(180*.7))}' 125.000000 125.000000 125.000000^Z 중단됨 (사용자) user%
int(180*.7)로 저는 126이라는 출력값을 기대하는데 125가 출력됩니다.
처음에는 Unxutils에 있는 gawk.exe를 사용했는데, 이상해서 위의코드처럼
솔라리스에서 awk로 해도 마찬가지입니다.
서로 같은값을 내는것으로 봐선 제가 뭘 모르는것 같습니다만..
Forums:
awk문제가 아닌 것 같네요. C로 해봐도 같은 결과입니다. doub
awk문제가 아닌 것 같네요. C로 해봐도 같은 결과입니다.
double 로 계산한 결과를 보면 아시겠지만 작은 오차가
생깁니다. int연산이므로 잘라내는 연산을 하기 때문에
결과가 125가 나오네요.
cygwin환경에서 실행 결과입니다.
$ ./int.exe
[/]125
-1.421085e-14
:wq
답글 감사합니다. 파이썬에서도 그렇게 나와 C로 해보려다가 미처 못해봤습
답글 감사합니다. 파이썬에서도 그렇게 나와 C로 해보려다가 미처 못해봤습니다만 역시 같은 결과네요 :)
bc 로 해보니.....
이렇게 되는데.. bc에서 정수를 취할수 있나요?
그렇게만 되면 126 나올거 같은데 ^^
명령은 bc -l 로 했습니다.
댓글 달기