例如,当我这样做时,(/ 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) –