当前位置:  开发笔记 > 编程语言 > 正文

是否有任何理由在Clojure中默认的十进制文字不是BigDecimal类型?

如何解决《是否有任何理由在Clojure中默认的十进制文字不是BigDecimal类型?》经验,为你挑选了1个好方法。

我了解到Clojure读者将十进制文字解释为后缀"M",如1.23M,作为BigDecimal.而且我也知道没有'M'的十进制数字变成了Java的两倍.
但我认为正常的十进制数是BigDecimal会更好,而依赖于主机的十进制有后缀,比如1.23H.因此,当由于IEEE double的精度限制而导致数字被破坏或截断时,我们可以很容易地注意到该数字是精度受限的.此外,我认为更容易表达应该是独立于主机的.

除了时间性能之外,Clojure是否有任何理由将文字小数解释为Java double?另外,我认为时间性能不是一个答案,因为它不是C/C++,而且声明依赖于主机的十进制的其他方式可以像'1.23H'那样实现.



1> Shannon Seve..:

一旦有了整数,Clojure会在需要时自动升级到更大的尺寸.这已被更改,以便抛出溢出异常.我的感觉,远远望去:

    Clojure的功能是在实际的时间内做实际的实用语言.他们不希望性能爆炸,因为数字操作意外地使用任意精度库而不是CPU整数操作.与似乎优先考虑数学上的好处而不是实用性的方案形成对比.

    当操作间调用失败时,人们不喜欢在运行时感到惊讶,因为Java库需要32位整数而不是任意大小的整数.

所以决定默认是使用普通整数(我认为Java长?)并且只有当程序员调用它时才会使用任意大整数,当程序员故意认为他们愿意接受性能命中时,以及inter - 击中.

我的猜测类似于小数点数的决定.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有