javascript - 如何将非常大的十进制数转换为字符串?

标签 javascript string numbers decimal

我想将十进制数123.456e+304转换为字符串"123.456e+304"(小数点的位置。 不应更改)。

这是我试过的,但它们都返回相同的结果:1.23456e+306(小数点的位置已更改,并且还替换了 304306)。

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/

相关文章:

javascript - 如何防止浏览器阻止我创建的弹出窗口?

javascript - 重命名数组中多个相同的匹配项

c - 遍历c中的字符串数组

asp.net-mvc - 有没有办法在 .cshtml 文件中显示行号?

javascript - 如何检查文本框中的数字,其中您只需要字母 A - Z

javascript - AngularJS - 添加数据时 ng-repeat 不更新

javascript - jquery中将数组的值从一个函数实例化到另一个函数

JavaScript 未定义函数外部 JavaScript 文件

javascript - 隐藏包含特定字符串的div

r - 在R中随机获取纬度/经度数据