例如,当我这样做时,(/ 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. 格式化数字到n位小数没有四舍五入
- 2. 在Java中舍入小数
- 3. 如何在Python中将数字四舍五入到小数点后n位
- 4. 四舍五入为n有效数字
- 5. 根据幅度动态地将数字舍入到n个小数位
- 6. 将数字舍入到小数位
- 7. 舍入小数值
- 8. 在Sass中舍入数字并调整小数位数
- 9. 舍入小数位数
- 10. Clojure的四舍五入至小数点后
- 11. 如何四舍五入到n长度(不是n个小数位)?
- 12. 如何在java中将数字舍入到两位小数?
- 13. 在C编程中将数字舍入到3位小数
- 14. 将任意n位数字舍入为(n-1)零位
- 15. 在PHP中舍入小数点
- 16. 在Javascript中舍入到2位小数
- 17. 在sql server中舍入小数点
- 18. 如何在C++中舍入小数位?
- 19. 防止PHP舍入小数字
- 20. 没有舍入小数的小枝数字格式
- 21. 在字典中舍入浮点数字
- 22. 将CSV中的所有数字舍入为两位小数
- 23. Python 3.3.2 - 舍入到一个数字虽然保持小数
- 24. 在php中舍入不同的数字
- 25. 双VS小数的舍入在C#
- 26. 使用XSLT将数字舍入为最小的数字
- 27. 四舍五入到两个小数点
- 28. 第一个小数总是舍入
- 29. 舍入到某个小数位
- 30. 舍入数字javascript - 数学
是的,这非常简单。跛我问这样的问题。十分感谢! –
观察,即使使用精度和BigDecimal在某个点上四舍五入,数字142857只是无限重复。 (请参阅http://en.wikipedia.org/wiki/Continued_fraction) – klang
Clojure文档:['with-precision'](http://clojuredocs.org/clojure_core/clojure.core/with-precision) –