내 응용 프로그램에서 float 값을 사용하여 고객 점수를 보유하고 있습니다. 그리고 요구 사항에 따라 점수는 점 앞에 소수점 5 자리와 점 뒤에 3 자리수를 가질 수 있습니다.sysout 동안 float 값이 자동 증가하는 이유
예를 들어: 99999.999
을하지만, SYSOUT를 사용하여 부동 소수점 값을 인쇄하는 동안 나는 이상한 행동을 이해하지 못했다.
public class Test {
public static void main(String[] args) {
float f1 = 9999.999f;
System.out.println(f1);
float f2 = 99999.999f;
System.out.println(f2);
}
}
을 그리고 출력은 다음과 같습니다 :
자세한 내용은 아래 예제 코드를 참조 값이 "99999.999은"자동 "100000.0"로 증가되었다 이유는 다음과 같습니다
9999.999
100000.0
을 SYSOUT를 사용하는 동안 ? 왜 지점 앞에서 네 자리 10 진수 값 (예 : "9999.999")을 사용하는 동안 동일한 문제가 발생하지 않았습니까?
의견을 보내 주시면 감사하겠습니다. 자바 사양
수레에는 그 정도의 정밀도가 없습니다. – user2357112
귀하의 질문은 오히려 기본 변환에서 앞뒤로 이동할 때 미리보기를 잃지 않고 부동 소수점의 소수 자리 수에 관한 것입니다. 이것 좀 봐> [https : //softwareengineering.stackexchange.com/questions/215065/can-anyone-explain-of-float-in-memory] (https://softwareengineering.stackexchange.com/questions/215065/can-anyone-explain-representation-of-float-in) -기억) – Infamous