nodejs / nodejs-zh-CN

node.js 中文化 & 中文社区
https://nodejs.org/zh-cn/
Other
395 stars 99 forks source link

node / iojs 浮点数的问题一直是隐患, 有没有办法推动解决或者有个靠谱的方案 #144

Closed leecade closed 9 years ago

XadillaX commented 9 years ago

浮点数一直是这样的没办法,这不是 node.js 能够决定的——而是浮点数在内存中的存储状态以及计算方法。可以去看看计算机组成原理或者操作系统等底层的书。

fengmk2 commented 9 years ago

在 es 语言规范里面没有能定下来草案之前,估计科学计算还真没法在 js 语言层面解决了。 目前还只能靠相应的模块解决了。

popomore commented 9 years ago

是在说这个? https://www.npmjs.com/package/bn.js On 2015年3月25日 周三 at 下午8:51 fengmk2 notifications@github.com wrote:

在 es 语言规范里面没有能定下来草案之前,估计科学技术还真没法在 js 语言层面解决了。 目前还只能靠相应的模块解决了。

— Reply to this email directly or view it on GitHub https://github.com/iojs/iojs-cn/issues/144#issuecomment-86035608.

XadillaX commented 9 years ago

@popomore 这个只是一个高精度整形的实现吧?相当于比 long long 或者 __int64 还要大的整形,差不多就是 Java 里的 bignumber(Java 盲,勿笑)了。

这样的包应该不少,@rvagg 就有个包 https://www.npmjs.com/package/bignum

是在说这个? https://www.npmjs.com/package/bn.js

leecade commented 9 years ago

谢谢, 目前这是我最担忧的地方, 希望有个库去劫持修复这个问题 :)

popomore commented 9 years ago

是的,js 语言的缺陷需要从核心优化,不应该转给开发者。不过 iojs 也无能为力,V8到是可以去推进规范,不然他们也不会自己去写库了。 On 2015年3月25日 周三 at 下午9:38 斯人 notifications@github.com wrote:

谢谢, 目前这是我最担忧的地方, 希望有个库去劫持修复这个问题 :)

— Reply to this email directly or view it on GitHub https://github.com/iojs/iojs-cn/issues/144#issuecomment-86055253.

fengmk2 commented 9 years ago

https://gist.github.com/BrendanEich/4294d5c212a6d2254703/

XadillaX commented 9 years ago

@popomore 问题在于——就算是 C/C++ 的底层的原生浮点数也是如此啊。至于那些底层语言有没有劫持的解决方案我就不清楚了。

这个规范不是 V8 就能推动的了的。

we11adam commented 9 years ago

这是 CPU 的问题,不然 Intel 请一帮数学家研究浮点干嘛呢…… 语言当然可以实现高精度,但是效率太低。

XadillaX commented 9 years ago

@adamme 正解 -。 - 我表达能力不行。