回答
不能全面浮點數爲10個進制兩個地方或任何基數爲10的位數,浮點數只是近似值。有很多基數爲10的數字,只是不能完全表示爲基數爲2的小數位數有限的數字,這是出於同樣的原因,您無法用基數10中的數字1/3來表示有限數量的小數位。您應該將您作爲近似值浮動,然後僅將其作爲顯示的一部分。或者如果你不想近似,然後做一些事情,比如使用整數來代表1/100的數值,然後將它們除以100來獲得顯示值。
圓到小數點後兩位:乘100,轉換由100.0爲整數,除(但請注意,你不能在一般的浮點數說,在其本機表示,恰好有兩個基本十位之後小數點;那些不需要是本地表示的整數)
因此,我實際上會爭辯說,乘以100並存儲爲一個整數並理解爲代表100個單位,是一個整數更準確地表示「精確到小數點後兩位的數字」。
這不輪。轉換爲整數截斷。 –
我的一個策略是將浮點數(如2/3)乘以(10^precision),並通過將其轉換爲int來截斷它。
如果你不打算操縱變量(只是打印出來),你也可以使用:
printf("%.2f", 2/3);
// this is an old trick from BASIC
// multiply by 100.0 and add 0.5 (the 0.5 is for the rounding)
// normally you want to round rather than truncate for a more accurate result
// take the integer value of this to get rid of additional decimal places
// then divide by 100.0 to get the original number back only rounded
// of course you need to use floating point
#include <stdio.h>
#include <stdlib.h>
int main()
{
double a=1.0, b=2.0, c=3.0;
a = (int)((b/c)*100.0+0.5)/100.0;
printf("%f\n",a); // print all digits of a
printf("%10.2f\n",a); // print only 2 decimal points of a
return 0;
}
'的printf( 「%F \ n」 個,一個);'確實** **不打印A'的'所有數字。 '的printf(「%53F \ n」,一個);'打印了''的所有數字,正如你可以看到自己,這是不是漂亮:'0.67000000000000003996802888650563545525074005126953125' –
- 1. 我怎樣才能分兩個浮點數,並得到一個整數
- 2. 我怎樣才能一點一點地分配給C中的一個整數?
- 3. 我怎樣才能顯示浮點後只有一個數字
- 4. 我怎樣才能將兩個數組合併爲一個
- 5. 我怎樣才能將一個「整數指針數組」傳遞給c庫中的一個函數?python
- 6. 我怎樣才能得到lua浮點數的小數?
- 7. 我怎樣才能連接到兩個數據庫
- 8. 我怎樣才能得到一個算法來做浮點指數的取冪?
- 9. 我怎樣才能得到我在C中的最後輸入(浮點數據)?
- 10. 我怎樣才能檢查一個浮動有兩個有效數字?
- 11. 我怎樣才能正常的一個雙點數到一個int數字exacly?
- 12. 我怎樣才能把兩個整數相鄰?
- 13. 我怎樣才能更好地在一個類中填充兩個數組?
- 14. 我怎樣才能做一個浮點基Math.pow?
- 15. 我怎樣才能將數據一次插入到兩個表中?
- 16. 在C中,我怎樣才能得到輸入(整數),而不使用ENTER?
- 17. 我怎樣才能將一個隨機整數賦值給一個變量?
- 18. solr:我怎樣才能得到整個語料庫中關鍵字的數量?
- 19. 我怎樣才能從這個數據庫中得到一個人的國家?
- 20. 我怎樣才能達到一定的浮點精度?
- 21. 我怎樣纔能有兩個使用相同的方法使用C#WebAPI 2
- 22. 我怎樣才能得到一個TD
- 23. 我怎樣才能得到一個RejectedExecutionException
- 24. 我怎樣才能得到一個PortletRequest
- 25. 我怎樣才能找到一個DataTable
- 26. 我怎樣才能用一個segue來做到這一點?
- 27. 我怎樣才能使用一個類使用點運算符
- 28. Obj-C,我怎樣才能追加一個NSMutableArray到另一個?
- 29. 我怎樣才能到一個int數組最接近的整數?
- 30. 我怎樣才能得到一個基於整數的位移數字
你是什麼意思的少數資源?它似乎並沒有與問題聯繫在一起。 – nhahtdh
一個問題是:你甚至希望使用浮點運算在你的操作系統?有一些併發症。如果您想完全避免浮動,您可能需要查看十進制數字的定點表示。 – nneonneo