在 JavaScript 中获取两位小数,而不四舍五入到下一个更大的数字

Laz*_*ale 1 javascript dom-events

我有这个JS代码:

var propertyYield = annualRent / propertyValue * 100.0;
Run Code Online (Sandbox Code Playgroud)

在特定场景中,结果为 4.999。

所以当我这样做时

propertyYield.toFixed(2)

我得到的财产收益率为 5.00。

我想要实现的是实际得到 4.99 而不是 5.00 四舍五入到小数点后两位。

我怎样才能做到这一点?

Fad*_*ata 5

您可以使用 Math.floor 和一些附加算术:

Math.floor(15.7784514000 * 100) / 100
Run Code Online (Sandbox Code Playgroud)

或者将数字转换为字符串,匹配数字到小数点后第二位,然后将其返回为数字:

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))
Run Code Online (Sandbox Code Playgroud)

然后你仍然可以调用 toFixed 来获取固定小数位数的字符串。

Math.floor(15.7784514000 * 100) / 100
Run Code Online (Sandbox Code Playgroud)