Math.ceil(15/10)
이 2.0이 아닌 이유는 무엇입니까? 대신에 Math.ceil((double)15/10)
을 실행하면 예상대로 2.0이됩니다.(Java) Math.ceil (15/10)이 2.0이고 2.0이 아닌 이유는 무엇입니까?
답변
정수를 다른 정수로 나눌 때 정수가 제공되므로 15/10
은 1
입니다. the specification 가입일
: 몫 이진 숫자 촉진 후 정수 피연산자 N 및 D에 대해 생성되는 0 향해
정수 나누기 라운드 (§5.6.2)는 정수 값 (Q) 인 그 크기는 가능한 한 큰 | 이고 | d · q | ≤ | n |. 또한, q는 | n | ≥ | d | 이고 n과 d는 같은 부호를 갖지만, | n | ≥ | d | n 이고 d는 반대 기호를가집니다.
Math.ceil(15.0/10)
또는 Math.ceil(15f/10)
(두 번째를 사용하는 첫 번째 것은 두 번째, 두 번째는 부동 소수점)을 사용해야합니다.
+1 항상'Math.ceil (15F/10)'을 선호합니다. – PermGenError
@PermGenError 네, 그게 더 명백합니다. 나는 편집했다. –
감사합니다. 너는 멋진 사람이야. – user2212586
대신'Math.ceil (15f/10)'을 사용하십시오. –