저는 자바를 배우기 시작한 숙련 된 PHP 개발자입니다. 나는 지금 약간의 린다 과정을 따라 가고 있으며 나는 여전히 초기 단계이다. 나는 사용자 입력을 요구하고 간단한 계산과 물건을하는 샘플 프로그램을 작성하고있다.Java 부서가 고장난 이유는 무엇입니까?
어제 나는이 상황에 걸쳐 온 :
double result = 1/2;
을 내 원시인의 뇌와 내가 result == 0.5
을 생각하지만, 아니, 자바 것이다. Apparantly 1/2 == 0.0
. 네, 피연산자 중 하나를 double로 변경하면 결과도 double이됩니다.
이것은 실제로 두려워합니다. 나는 도울 수 없지만 이것이 매우 부러 졌다고 생각한다. 정수 나누기가 정수가된다고 생각하는 것은 매우 순진합니다. 나는 그것이 드물게 심지어 경우라고 생각한다.
그러나 자바가 널리 사용되고 '왜 자바의 부서가 고장 났는가?' 어떤 결과도 나오지 않을 것입니다. 아마도 틀렸을 것입니다.
내 질문은 :
- 왜 분열이처럼 행동 하는가?
- 그런 마법/부두/예기치 않은 행동을 찾을 수있는 곳은 어디입니까?
1과 2는 정수이므로 1.0, 1f를 사용하거나 암시 적 캐스트를 수행하십시오. 이것은 설계 상으로는 이와 같이 동작하며, 정수 연산을 다룰 때마다 이것을 기대합니다. [Here] (http://ideone.com/MZIyBm)는 시도 할 수있는 몇 가지 옵션입니다. –
느슨한 언어 (php)에서 강력한 형식의 언어 (java)로 가다 보면, 달리 명시하지 않는 한 정수가 정수로 유지된다는 사실에 익숙해 져야합니다. –
왜 downvote? 나는 그 질문이 분명히 진술되었다고 생각한다. 다른 방법을 생각하면 알려 주시면 업데이트하겠습니다. –