ClojureScript中整数的大小

时间:2015-12-30 19:09:51

标签: clojure clojurescript

page说明如下:

  

ClojureScript目前仅支持整数和浮点数   映射到JavaScript基元的文字

有人能告诉我这对整数意味着什么吗?它们是64位(可能不是,因为它需要两个 JS数字)?还是32位?或53位(即双AFAIK中的最大整数位,请参阅here)?

[编辑] 原因我想知道这一点,我想用“跨平台”语言编写一个“模拟”,这样模拟就可以得到相同的结果。客户端(Browser(JS),Android,Web-Start,...)和Server(JVM)。已知浮点会导致模拟的“去同步”,因为不同的硬件可以使用相同的输入为同一计算提供不同的结果。因此我只想使用“整数”,但如果Clojure和ClojureScript之间的整数大小不同,我最终仍会“去同步”(例如,到达integer overflow时使用随机数生成器,在模拟中大量使用。)

2 个答案:

答案 0 :(得分:2)

“映射到JavaScript原语”。在我看来,这意味着ClojureScript整数与JavaScript整数完全相同:它映射到相同的基本类型。根据{{​​3}},是2 ^ 53-1

答案 1 :(得分:1)

我试图以某种方式验证@Draco18s的答案,并最终在ClojureScript REPL中找到了这段代码:

if(NODE_ENV = 'development') 

看起来像" 9007199254740992"仍然是一个有效的整数,但我认为这仅仅是因为四舍五入等。所以,它确实是9007199254740991(或2 ^ 53-1)。