在actionscript 3中代表9999999999999999

Muz*_*ear 4 numbers actionscript-3

我尝试在变量中存储10 16 - 1 Number:

var n:Number = 9999999999999999
Run Code Online (Sandbox Code Playgroud)

但存储的值n最终为10000000000000000或10 17.

如何在动作3中代表10 16 - 1?

Ves*_*per 17

你已经没有使用数字类型精度功能了,所以你必须设计自己的方法来存储这么大的数字,并具有所需的精度.操作长算术的最常用方法之一是使用字符串作为数据持有者,另一种使用整数向量,每个位置代表基于2 ^ 32的系统的"大数字".鉴于AS3约束,我会说一个int的向量会更快,尽管使用基于字符串的方法显示一个长数字会更容易.

  • + 1表示正确答案有一些现成的实现.例如http://www.graniteds.org/confluence/display/DOC/2.+Big+Number+Implementations (4认同)
  • 是的,但对其原因的理论解释是一回事.因此,为他的问题添加了修复/解决方法以完成答案. (2认同)