3 * 0.1 == 0.3將會返回什麼?為什麼?

侯蜀黍發表於2024-08-17

先說結果:fasle

首先了解下基礎知識:

十進位制整數轉換為二進位制整數:"除2取餘,逆序排列"

demo如下:

十進位制小數轉換成二進位制小數採用"乘2取整,順序排列"法

demo如下:

我們拿10進位制下的0.1來說,在二進位制中其值大概是:0.10000000000000000555111512312578270211815834045410156

所以說在計算機中我們理解的十進位制的0.1被轉換成了可能是無窮位小數的二進位制。

這就是為什麼 3 * 0.1 != 0.3的原因

相關文章