以0.5為例,0.5*2=1,所以二進制表示為0.10
以0.625為例,0.625*2=1.25,所以二進制表示為0.101
而這種情況下,0.1是無限循環狀態,所以我們使用IEEE 754標准,即float,與double使用sem序列,表達式為n=(-1)^s*m*2^e
當n<0時,s=1,n>=0,s=0;
m是尾數位,有效數字位;e是n的指數位。
注意:JAVA當中不要用float與double進行金額計算,會發生精度丟失,建議使用BigDecimal來計算。
本文鏈接:https://zhuanlan.zhihu.com/p/265281184