簡體   English   中英

無法使用floorf將數字四舍五入到小數點后兩位

[英]Can't round number to two decimal places using floorf

我在這里找到這個公式:

podrucje[i][j] = floorf(podrucje[i][j]  * 100 + 0.5)/100;

其中podrucje[][]是浮點矩陣。 floorf返回正確的值( desired * 100 ),但問題出在/100 例如,如果我有49.599998floorf返回4960.000並通過划分后100結果又是49.599998

問題出在哪兒?

我知道我可以在打印時對其進行四舍五入,但是我將在Excel中使用此矩陣並將其轉換為范圍,因此我不會影響表示形式。

大多數十進制數字不能完全表示為浮點數。

您可能需要將它們存儲為整數,或者在轉換為人類可見的內容時進行四舍五入(即打印出數字)。

如果要將數字用於進一步的計算,並且需要先將其四舍五入,請使用其他表示形式。

這不是以10為底的浮點算術表示法的基本問題! 您可以打印以10為基數的數字,但是四舍五入到小數點后兩位。

跨邊界安全導出數字的標准安全方法是通過純文本ascii而不是二進制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM