我想将十进制数123.456e+304
转换为字符串"123.456e+304"
(小数点的位置。
不应更改)。
这是我试过的,但它们都返回相同的结果:1.23456e+306
(小数点的位置已更改,并且还替换了 304
与 306
)。
var e = 123.456e+304;
console.log(e.toString());
console.log((e).toString());
console.log(e .toString());
console.log(e.toFixed());
console.log(String(e));
console.log((new String(e)).toString());
console.log(`${e}`);
console.log('' + e);
console.log(e + '');
console.log(''.split.call(e, '').join(''));
有什么方法可以将其转换为期望的字符串"123.456e+304"
?
最佳答案
这是不可能的,因为一旦你分配:
var e = 123.456e+304;
并由 JavaScript 解释器处理,e
只是一个由 IEEE 754 内部表示的数字,相当于 1.23456e+306 的数字,它“没有内存”你的小数点所在的位置。所以无论你做什么,你都无法知道小数点在哪里,让你把它移动到你希望它在字符串中的位置。
为了“知道”小数点在哪里,您需要有一个字符串开头,但这也是您想要的结果。
关于javascript - 如何将非常大的十进制数转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59799163/