例如,當我這樣做時,(/ 1.0 7.0),我只能得到17個數字:0.14285714285714285。我怎樣才能獲得更多呢?在clojure中舍入n個小數的數字
11
A
回答
14
使用BigDecimal
號和with-precision
:
(with-precision 50 (/ 1M 7))
=> 0.14285714285714285714285714285714285714285714285714M
10
的Clojure(和幾乎所有的Lisp)具有比類型這樣你不會失去精度。按比例進行所有計算,並在最後一分鐘轉換爲雙/浮點數以避免精度問題。
+0
但是,要小心比例。例如,如果您不斷重複乘數,則可能會得到巨大的分子和分母。這可能變得非常緩慢並且可以使用大量的RAM。 – Mars
相關問題
- 1. 在Java中舍入小數
- 2. 如何在Python中將數字四捨五入到小數點後n位
- 3. 根據幅度動態地將數字舍入到n個小數位
- 4. 將數字舍入到小數位
- 5. 舍入小數值
- 6. 在Sass中舍入數字並調整小數位數
- 7. 舍入小數位數
- 8. 如何四捨五入到n長度(不是n個小數位)?
- 9. 將任意n位數字舍入爲(n-1)零位
- 10. 在sql server中舍入小數點
- 11. 在Javascript中舍入到2位小數
- 12. 在PHP中舍入小數點
- 13. 沒有舍入小數的小枝數字格式
- 14. 在字典中舍入浮點數字
- 15. 在php中舍入不同的數字
- 16. 雙VS小數的舍入在C#
- 17. 第一個小數總是舍入
- 18. 在Inno Setup Pascal腳本中將浮點數捨去到N個小數位
- 19. 如何四捨五入到小數點後n位C++
- 20. 在C中不同情況舍入或捨棄小數點#
- 21. 如何在mysql小數字段中禁用半舍入?
- 22. 在Objective-C中四捨五入數字
- 23. 在Visual Basic中舍入數字
- 24. Cmdlet在輸出中舍入數字
- 25. 如何在C++中將變量四捨五入到小數點後n位
- 26. 如何在JSTL中舍入正數和負數小數?
- 27. 更改小數爲整數(不捨入)
- 28. 如何四捨五入小數點後的數字?
- 29. 轉換小數爲一個字符串 - 千與舍入
- 30. 四捨五入數字:Python中的Java'Math.rint'
是的,這非常簡單。跛我問這樣的問題。十分感謝! –
觀察,即使使用精度和BigDecimal在某個點上四捨五入,數字142857只是無限重複。 (請參閱http://en.wikipedia.org/wiki/Continued_fraction) – klang
Clojure文檔:['with-precision'](http://clojuredocs.org/clojure_core/clojure.core/with-precision) –