例如我可以用System.Math.Round((float),2)
來圓我浮到最近的2位小數的具體數量,但反正是有在F#中,我可以一輪上漲我浮到小數點後2地方呢? 感謝F#四捨五入到小數
2
A
回答
3
的hackish解決圍捕
let round x d =
let rounded = Math.Round(x,d)
if rounded < x then x + Math.Pow(10,-d) else rounded
1
圍捕(嚴格起來,而不是從零剛剛離開):
let roundUp x d =
Math.Round(x + Math.pow(10,-d)/2,d)
請考慮四捨五入0.001〜2DP。你想這個四捨五入到0.01:
0.001 + 0.01/2 = 0.006
-> 2dp: 0.01
這是從一個共同的方法得出擺脫截斷正常的四捨五入;添加一半所需的精度和截斷。但是,這會受到負數的影響,因此需要根據原始值的符號減去或增加增量。
請注意,如果您總是四捨五入,那麼負數的數字會趨向零。在通常需要2dp的財務狀況下,這是一個壞主意,因爲0.021的餘額四捨五入爲0.03,但-0.021的餘額四捨五入至-0.02,無論您是計算借記還是貸記。如果你對稱地做,例如總是遠離零,然後你不再在意。
+0
它甚至比這更糟糕 - 使用默認的RoundToEven行爲,一些已經存在的數字是不穩定的。例如,roundUp 1.05 2將產生1.06。你需要在你的回合使用MidPointRounding.AwayFromZero,並確保你總是舍入負數。 – Lamarth 2017-08-28 08:07:52
相關問題
- 1. 沒有四捨五入到五位數
- 2. 四捨五入浮動與F-串
- 3. MS Access四捨五入SQL小數位
- 4. pyodbc SQLSERVER光標小數四捨五入
- 5. 四捨五入爲最小整數值
- 6. 四捨五入長小數點
- 7. 四捨五入TSQL
- 8. Convert.ToSingle四捨五入
- 9. parseFloat四捨五入
- 10. Java四捨五入
- 11. 四捨五入至整數
- 12. 四捨五入數字
- 13. 四捨五入數字
- 14. java四捨五入數
- 15. 數字四捨五入
- 16. PHP四捨五入數
- 17. Rspec eq()四捨五入數
- 18. '正確'四捨五入到Python,到小數點後三位
- 19. 爪哇,四捨五入到小數點後兩位數
- 20. C#四捨五入雙到指定的小數位數
- 21. 如何四捨五入浮點數。到小數點後兩位?
- 22. 如何將數字四捨五入到小數點後兩位
- 23. sqlite四捨五入'錯誤'
- 24. CSS計算()四捨五入
- 25. 四捨五入在Python
- 26. 四捨五入在SQL Server
- 27. 如何四捨五入
- 28. ActiveScaffold讓我四捨五入
- 29. linq.sum被四捨五入
- 30. HttpServletResponse四捨五入setDateHeader
This Works,thanks。 – user1934312 2013-04-07 09:01:41
呃,一個if分支只是爲了四捨五入?加上所需精度的一半,然後輪迴,當然! – 2013-04-10 14:30:29