이 질문에 대한 답변 (Google 검색을 할 때 찾을 수 없음)이 확실하지 않습니다. http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html 수학 클래스 제곱근 메서드가 double을 반환하는 것으로 나타났습니다. 필자는 전체 평방근 (4, 9)이있는 정수로 일식 계산을 해 보았습니다. 그 중 네 개의 제곱근은 항상 소수점 하나 (4.0, 9.0)로 부동 소수점 값을 반환한다는 것을 알았습니다. 내가 왜 여분의 십진수를 반환했는지 궁금했다. 나는 int가 double 값으로 간주 될 수도 있다고 생각했다. 내가 당신이 더 많은 메모리를 절약 원인이 단지 하나 더 의미가 반환에 심지어 왜 math.sqrt는 부동 소수점을 소수점 하나의 값으로 반환하나요?
public static double control(){
return 1;
}
그것을 밖으로 테스트 그냥 1
을 반환 유효 보았다 (내가 추측에 더 많은 메모리가 여분의 소수점을 저장하는 데 필요)
아니요, int는 double과 같다고 볼 수 없습니다. (int) 4와 (double) 4는 완전히 다른 내부 값을 갖습니다. 대부분의 int는 정확하게 float로 표현 될 수 없습니다. (float) 4 실제로는 3.9999999999xxxxxx –
은 int가 아니지만 유효한 double x = 6입니까? – committedandroider
float <-> int가 정확한 값을 갖는 값이 있지만 모든 정수가 부동 소수점으로 정확하게 표현 될 수 없다고 가정하는 것이 더 쉽습니다. 하지만 네, 이중이라고 말하면 6은 "떠 다니게"될 것입니다. 그러나 그것은 내부적으로 5.9999xxx가 될 것이라는 것을 의미합니다. –