【发布时间】:2011-04-15 03:05:46
【问题描述】:
对不起,但我不是那个数学人,所以我不知道它的真正名称:
数字12345678901234567890123 也可以表示为1.2345678901234567890123 * 10^22(如果我是对的并且没有遗漏任何小数...)
考虑一下这个javascript:
var number = 12345678901234567890123;
var stringValue = number.toString();
如果我这样做,它会呈现替代翻译(如上所述)。相反,我想呈现简单、朴素、... 12345678901234567890123
如何做到这一点?
编辑:
只是要清楚:我要渲染的数字不包含任何小数位。这只是一个简单的12345678901234567890123 ...不是12345678901234567890123.123 或类似的东西。而且,就像我使用 javascript 一样,typeof 是 number
【问题讨论】:
-
如果存储为浮点数,恐怕没有近似值就无法进行这样的转换。只是想把这个拿出来。
-
是的,我明白了。只是如果在这种情况下 Javascript 使用 float 作为内部类型来存储此数字,则近似值已经发生,并且您的整数非常大的数字将转换为 float 或 double 中的近似值。 Double 可能仍然具有很高的准确性,但在 float 中,我可以保证您会损失或获得数十亿美元。尽管您要存储 10^22 大数。不要期望准确性,即使是双重的。我可以向你保证,如果 JS 将你的数字表示为 1.23445E+22,那么你就有了一个严重的近似值。
-
您可能希望将您的评论转换为答案 - 它一针见血!
标签: javascript type-conversion