1
A
回答
6
的println(a)
呼籲結束調用Float.toString(a)
,它說:
多少位必須打印爲米或一個小數部分?必須至少有一位數字才能表示小數部分,並且除此之外還需要多少位數,但只需要多少位數來唯一地區分參數值與類型爲
float
的相鄰值。也就是說,假設x是由該方法對有限非零參數產生的十進制表示法所表示的精確數學值,其值爲f。然後f必須是最接近x的float
值;或者,如果兩個float
值同樣接近X,然後˚F必須是它們中的一個和的˚F有效數的至少顯著位必須爲0
。
或者所述另一種方式中,由於IEEE 754 single-precision floating-point值僅具有6至9 significant decimal digits精度,將不包括最後1
,因爲它超過了存儲的數值的精度。
這裏是代碼顯示的數字:
System.out.println(Math.nextDown(0.1f)); // prints: 0.099999994
System.out.println(0.1f); // prints: 0.1
System.out.printf("%.15f%n", 0.1f); // prints: 0.100000001490116
System.out.println(Math.nextUp(0.1f)); // prints: 0.10000001
7
0.100000001
不會確切無論是。如果你的Java是打印該浮動完全不圓脣,it would print
0.100000001490116119384765625
這是無用的大多數浮點使用情況。
要麼它不完全輪迴,而且要得到0.100000001490116119384765625
,要麼輪到它,而需要舍入策略。 The rounding strategy they picked用於在小數點後打印足夠的數字以區分浮點數和其他浮點值,並且最小爲一位數。這是不是必然足以區分浮動與其他雙價值。
相關問題
- 1. 爲什麼浮動的舍入使用循環?
- 2. 四捨五入負浮動文字 - java
- 3. 長期浮動,爲什麼?
- 4. 爲什麼浮動下降?
- 5. 爲什麼Perl的sprintf不能正確地舍入浮點數?
- 6. 四捨五入浮動爲int
- 7. 什麼規則規定Python如何浮動四捨五入?
- 8. 爲什麼在四捨五入浮點數時python返回0?
- 9. 漂浮在C是四捨五入++,我不明白爲什麼
- 10. 什麼是Java浮動默認精度
- 11. 浮動舍入誤差
- 12. 爲什麼我的浮動除法0.00390625?
- 13. 爲什麼我的浮動被截斷?
- 14. C#浮點舍入行爲
- 15. 爲什麼此列表中的文本不正確地浮動?
- 16. 爲什麼浮動:使div浮動到左邊?
- 17. 浮動左vs浮動右 - 爲什麼訂單更改?
- 18. 爲什麼以及如何Mysql浮動只適用於Java?
- 19. 爲什麼浮動跨度下降?
- 20. 爲什麼math.modf返回浮動?
- 21. 浮動爲什麼不起作用?
- 22. CSS浮動不起作用?爲什麼?
- 23. 爲什麼div不正確地浮動?
- 24. 爲什麼不浮動:左側工作?
- 25. 浮動不起作用。爲什麼?
- 26. 爲什麼浮動值比較失敗?
- 27. Python的INT浮動四捨五入
- 28. Python3奇怪的浮動舍入
- 29. 爲什麼不roundf()四捨五入浮點值,爲什麼int - float數學運算返回錯誤的值?
- 30. 爲什麼UITableViewCell文本會在設備上浮動?
爲什麼*不應該*它? –
維基是你的朋友在這裏https://en.wikipedia.org/wiki/Fixed-point_arithmetic – JJF
因爲默認的格式化刪除了笑話數字。真的很可愛。請注意,您提供的數字不是確切的二進制浮點值。 – Bathsheba