關於float double小項問題

2022-02-13 11:45:46 字數 378 閱讀 5430

對於(int)90*0.7,在float下會算出63,而在double下則會取得62。

double和float的精度不同,因而對於數字的儲存不同,例如0.7在double下會有乙個小項,導致儲存是是63-(乙個很小的數),所以在取int時(捨棄低位),就會變成62。

有些時候float會有小項而double沒有。

這時候怎麼處理呢?

twh大佬告訴我,要先進行四捨五入,再保留n位小數。

可以加上乙個0.00……005,中間0的個數等於要保留的位數+1。

例如要保留2位小數,就加上0.0005。

但這樣會出現0.6145保留兩位小數:

所以又請教了一下twh大佬。(還沒回我,後面會更新的)

關於小專案總結

1,頁面布局要求要統一,包括登陸,模板頁,表單,錯誤提示,正確提示,文字.2,命名要求規範 3,注釋要求明確,簡潔 4,字型樣式要求統一,不可以突兀 5,在後台找不到你想要的,那麼就要通過網頁頁面除錯,在在後台通過查詢來找到相對應的內容 6,樣式盡量寫在樣式表內,避免 過多,修改時不容易 7,在拼接...

float double 精度問題

延伸一下 float和double的範圍和精度。1.範圍 float和double的範圍是由指數的位數來決定的。float的指數字有8位,而double的指數字有11位,分布如下 float 1bit 符號位 8bits 指數字 23bits 尾數字 double 1bit 符號位 11bits 指...

float double精度丟失

本文參考略加補充。都知道十進位制整數轉換二進位制 2 十進位制小數轉換二進位制 2 取 整 但小數有時乘不盡。結論 1 整數永遠可以用二進位制精確表示 2 小數的二進位制表示有時是不可能精確的 正如十進位制不法表示1 3,二進位制也無法表示1 10 這也就解釋了為什麼浮點型減法出現了 減不盡 的精度...