我有一個返回浮點數的程序。我需要返回小數點後兩位數字的答案,並截斷任何多餘的數字而不是四捨五入。有人可以給我一個例子嗎?你如何截斷而不是四捨五入? C
回答
有一個截斷的特殊函數:trunc(..)
丟棄小數點後的所有內容。
如果你想一定數量的小數位數後截斷,你可以這樣做以下:
trunc(number * 100)/100
這應該是顯而易見如何通過上述線路正常。
ty goood先生。那是我需要的。 – FruitPunchSamurai
這種方法在許多情況下都可以。在典型的OP問題之外,它確實有問題:1)數值接近1/100的倍數,因爲「數字* 100」引入了附加舍入。 2)用'| number |溢出> DBL_MAX/100'。 3)特殊值,比如'-0.0,INF'。 – chux
@chux我同意。你知道更好的方法嗎? – HolyBlackCat
- 1. SQL四捨五入/截斷
- 2. SQL Server四捨五入或截斷嗎?
- 3. Python字符串格式的浮動,如何截斷,而不是四捨五入
- 4. 截斷十進制數不四捨五入
- 5. iPhone:如何截斷未經四捨五入的浮動?
- 6. 如何四捨五入
- 7. 如何四捨五入
- 8. 獲取sql服務器警告截斷/四捨五入
- 9. Java四捨五入
- 10. Math.round不會四捨五入
- 11. 不正確四捨五入
- 12. .Net:number.ToString四捨五入
- 13. 四捨五入TSQL
- 14. summary()四捨五入
- 15. \(Double)四捨五入
- 16. Python3.3四捨五入
- 17. sprintf四捨五入
- 18. Javascript - 四捨五入
- 19. Convert.ToSingle四捨五入
- 20. parseFloat四捨五入
- 21. Lua:四捨五入的數字,然後截斷
- 22. 浮點截斷vs用手四捨五入
- 23. 蟾蜍截斷/四捨五入Oracle數字?
- 24. toFixed()不是四捨五入的
- 25. 四捨五入操作
- 26. JavaScript四捨五入湊整
- 27. 如何四捨五入的價值?
- 28. 如何檢查四捨五入錯誤?
- 29. 數字四捨五入
- 30. Java,如何以一種模仿四捨五入的方式截斷長數字?
在C中,當您將浮點數轉換爲int時,小數部分將被丟棄。因此,要截斷到小數點後兩位,可以乘以100,轉換爲int,然後除以100.(但請參閱下一條評論。) –
請注意,在今天的絕大多數計算機中,沒有像具有小數點後兩位(小數)小數的數字。即使你認爲你已經完全轉化爲1.23,但內部可能是1.2299999或1.23000001。所以你可能不得不在打印輸出上舍入這些數字,例如'printf%.2f'。 –