Javascript科学记数法浮点数与整数解释

时间:2018-02-21 16:10:47

标签: javascript

我正在使用js数字并且缺乏经验。所以,我想问几个问题: 2.2932600144518896 E + 160 这是浮点数还是整数?如果它浮动,我怎么能将它四舍五入到两位小数(得到2.29)?如果它是整数,我想它的数字非常大,我还有另外一个问题。 感谢

2 个答案:

答案 0 :(得分:1)

从技术上讲,正如评论中所说,这是一个数字。

如果你想要数字(不是它的字符串表示),你可以做什么:

var x = 2.2932600144518896e+160;
var magnitude = Math.floor(Math.log10(x)) + 1;
console.log(Math.round(x / Math.pow(10, magnitude - 3)) * Math.pow(10, magnitude - 3));

有什么问题?浮点运算可能不准确,因此应出现一些不同于0的“数字”。

要使这个数字真正“四舍五入”,你只能通过字符串实现它(而不是你不能进行任何操作)。

答案 1 :(得分:0)

JavaScript只有一个Number type,因此技术上既不是浮点数也不是整数。

然而,这并不是真正相关的,因为值(或者说它的表示)并不是特定于JavaScript并且使用E-Notation这是编写非常大/小数字的标准方法。

考虑到这个问题2.2932600144518896e+160相当于2.2932600144518896 * Math.pow(10,160),大约229后跟158个零,即非常轻微的大。