關於列印浮點數的乙個問題

2021-09-30 12:49:56 字數 601 閱讀 6862

在開發專案的時候,需要顯示金額數,例如:99.99 ;

nslog(@"%@", @99.99);
但是很坑爹的是,不知道為什麼,列印出來居然是99.98999999999999

2015-09-21 20:51:14.027 test[22562:295012] 99.98999999999999
很明顯這裡面少了0.00000000000001,和我們想要的效果不一致;

上面的這個問題我在查閱資料的時候,發現唐巧也介紹過這個問題,下面就給出我的解決方案:(也給自己做個記錄)

nsdecimalnumber *decimalnumber = [nsdecimalnumber decimalnumberwithstring:[ nsstring stringwithformat:@"%f",[@99.99 doublevalue]]];

nslog(@"%@", decimalnumber);

列印出來的值:

2015-09-21 20:56:23.898 test[22608:298001] 99.99

FreeRTOS列印浮點數卡死問題

問題 在任務裡使用printf 1f 列印浮點數時出現卡死的現象 原因 printf 1f 列印浮點數時消耗了很多棧空間,堆疊空間太小.解決 增加任務堆疊大小,或者使用freertos優化改進的printf函式.任務優先順序 define storage task prio 2 任務堆疊大小 def...

PHP 關於浮點數運算的問題

x 0.5 echo x 0.1 echo echo x 0.1 echo echo x 0.1 echo echo x 0.1 echo echo x 0.1 echo 今天在做一些相關的浮點型資料運算時,出現 2.7755575615629e 17 的問題。當然具體例項不是這樣的!google ...

雜談 關於浮點數的精度問題

1 包裝類float中為什麼有兩個常量來表示最小值 min value和 min normal?個人理解 既然有兩個常量,說明兩個常量表示的數值不一樣,查閱資料後發現,min value 值為 3.4e 45 的常量,它表示 float 型別能夠表示的最小值。min normal 儲存 float ...