我想将十进制数123.456e+304转换为字符串"123.456e+304" (小数点.的位置不应更改)。
下面是我尝试过的方法,但它们都返回相同的结果:1.23456e+306 (小数点的位置已更改,并且还用306替换了304 )。
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(''));
有没有办法将它转换为expect字符串"123.456e+304"
发布于 2020-01-18 17:32:24
这是不可能的,因为一旦你分配了:
var e = 123.456e+304;并且由JavaScript解释器处理,e只是一个由IEEE754内部表示的数字,相当于1.23456e+306,并且它在小数点所在的位置“没有内存”。因此,无论您做什么,您都不能知道小数点在哪里,也不能让您将它移动到字符串中想要的位置。
为了“知道”小数点的位置,首先需要有一个字符串,但这也是您想要的结果。
https://stackoverflow.com/questions/59799163
复制相似问题