首頁>技術>

Java中的小數(float、double)是不精確的。

0.1 用二進位制表示為:0.000110011...

求0.1的二進位制小數點後1位:0.1x2=0.2   0小數點後2位:0.2x2=0.4   0小數點後3位:0.4x2=0.8   0小數點後4位:0.8x2=1.6   1小數點後5位:0.6x2=1.2   1小數點後6位:0.2x2=0.4   0小數點後7位:0.4x2=0.8   0小數點後8位:0.8x2=1.6   1小數點後9位:0.6x2=1.2   1小數點後10位: 0.2x2=0.4   0

把上邊的求解結果拼湊就得到0.1的二進位制結果:0.000110011...

0.1的二進位制

由此可見,0.1用二進位制表示是一個無限迴圈的數,計算機只存了前幾位,所以Java小數不是精確的。

11
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • leetcode224_go_基本計算器