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