를 인쇄하는 동안 정밀도를 잃는 :아래의 코드를 살펴 제발 플로트
float num = 72000000.69f;
System.out.println(String.format("%.2f", num));
출력 : 내가 정밀도를 잃어버린하고 72000000.00
. 부동 소수점 형으로 변환하여 값을 인쇄하려고 시도했지만 도움이되지 않습니다.
정밀도를 유지하는 방법은 없습니까?
를 인쇄하는 동안 정밀도를 잃는 :아래의 코드를 살펴 제발 플로트
float num = 72000000.69f;
System.out.println(String.format("%.2f", num));
출력 : 내가 정밀도를 잃어버린하고 72000000.00
. 부동 소수점 형으로 변환하여 값을 인쇄하려고 시도했지만 도움이되지 않습니다.
정밀도를 유지하는 방법은 없습니까?
부동 소수점에는 7 자리의 정밀도가 있습니다. 너는 7 자리 숫자가있어.
정밀도를 높이려면 double을 대신 사용하십시오.
BigDecimal num = new BigDecimal("72000000.69");
System.out.println(num);
출력 :
72000000.69
사용 BigDecimal를, 부동 유형이 테스트를 시도
문제는이 값을 부동 값으로 보내는 다른 응용 프로그램에서 가져 오는 것입니다. 데이터 유형을 지금 변경할 수있는 특권이 없습니다. 그러나 다른 옵션이 없다고 확신 할 경우이를 상위 업체에게 알릴 수 있습니다. – Ayushi
생각하는 방식을 모든 전화 번호를 저장하지 않는
System.out.println(72000000.69f == 72000000f);
그것을 인쇄
true
이것은 float의 낮은 정밀도로 인해 .69가 단순히 끊어지는 것을 의미하며, 단순히 거기에 없기 때문에 어떤 방식 으로든 복원 할 수 없습니다.
안녕하세요. 이 정보를 어디에서 얻었습니까? 7 자리 숫자의 정밀도가 있습니까? 링크를 공유 할 수 있습니까? – Ayushi
안녕하세요, 위키에 있습니다. 감사. – Ayushi
http://www.homeandlearn.co.uk/java/short_float_variables.html – Curt