【问题标题】:How do I result in a Float number with 2 integers? [closed]如何产生具有 2 个整数的浮点数? [关闭]
【发布时间】:2013-04-15 21:13:50
【问题描述】:
var ratings = 3193;
var reviews = 9;
var average = parseFloat(ratings) / reviews; //I want a floating point number at the end.
这是正确的做法吗?
【问题讨论】:
标签:
javascript
floating-point
int
【解决方案1】:
JavaScript 中的所有数字都是双精度 64 位二进制格式 IEEE 754。无需像 C/C++ 和其他语言所期望的那样将“整数”类型转换为“浮点数”。只有在处理字符串时才需要parse*。
另见:
【解决方案2】:
不需要转换。 JavaScript 会自动在类型之间进行转换。并且数字实际上并未在内部表示为整数。反正它们都是浮点数。
所以,最简单的解决方案应该有预期的效果:
var ratings = 3193;
var reviews = 9;
var average = ratings/reviews;
您的示例中的内容导致引擎将 ratings 转换为字符串并将该字符串解析为双精度(理论上导致它必须以开头的值),然后将其视为计算中的分子。
【讨论】:
-
不过,bitwise operators 在内部将其操作数转换为带符号的 32 位整数可能很有趣。所以,(ratings/reviews) | 123 == 354.77 | 123 == 354 | 123.