Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数字转换为字符串(无指数)_Javascript_Type Conversion - Fatal编程技术网

Javascript 如何将数字转换为字符串(无指数)

Javascript 如何将数字转换为字符串(无指数),javascript,type-conversion,Javascript,Type Conversion,对不起,我不是那个学数学的人,所以我不知道它到底叫什么: 编号1234567801234567890123也可以表示为1.23456789012345678890123*10^22(如果我是对的,并且没有遗漏任何小数点…) 考虑以下javascript: var number = 12345678901234567890123; var stringValue = number.toString(); 如果我这样做,它将呈现替代翻译(如上所述)。相反,我想呈现简单、简单123456789012

对不起,我不是那个学数学的人,所以我不知道它到底叫什么:

编号
1234567801234567890123
也可以表示为
1.23456789012345678890123*10^22
(如果我是对的,并且没有遗漏任何小数点…)

考虑以下javascript:

var number = 12345678901234567890123;
var stringValue = number.toString();
如果我这样做,它将呈现替代翻译(如上所述)。相反,我想呈现简单、简单<代码>123456789012 34567890123

如何做到这一点

编辑:

需要澄清的是:我要渲染的数字不包含任何小数点。这只是一个简单的
123456789001234567890123
。。。不是
123456789001234567890123.123
或类似的东西。而且,就像我使用javascript一样,typeof
number

如果您仍然希望处理10^22的数字而不进行舍入,那么应该使用BigInt类,它实现任意大小的数字。您可以在网上找到几种BigInt javascript实现。

如果它是以浮点形式存储的,如果没有近似值,恐怕这种转换是不可能的。只是想把这件事说出来。是的,我明白了。只是在这种情况下,如果Javascript使用float作为内部类型来存储这个数字,那么近似值已经发生了,并且非常大的整数被转换为float或double中的近似值。Double可能仍然具有较高的精度,但在float中,我可以保证您将损失或获得数十亿美元。虽然您正在存储10^22个大数字。不要期望准确,即使是双精度。我可以向你保证,如果JS将你的数字表示为1.23445E+22,那么你就得到了一个非常接近的值。你可能想把你的评论转换成一个答案——这很准确!