如何避免 JavaScript 中的负 0 或 -0 值

tec*_*azi 6 javascript zero jsx

我尝试过使用toString()and 按位运算符|,但我想使用精度和字符串输出。正如@trincot提到的,这是由精度值引起的,例如-0.45将导致-0。我这里有代码。

typeof predictedHours //number e.g. -0.45
precision = 0
value={predictedHours.toFixed(precision)}
typeof value //string e.g. "-0"
Run Code Online (Sandbox Code Playgroud)

问题 - 是否有一个行将 -0 转换为 0 这一行 - value={predictedHours.toFixed(precision)}

Ry-*_*Ry- 14

我\xe2\x80\x99m不知道有什么特别干净的方法来做到这一点,但总是有\xe2\x80\x99s:

\n
predictedHours.toFixed(0).replace('-0', '0')\n
Run Code Online (Sandbox Code Playgroud)\n

或者,一般来说:

\n
predictedHours.toFixed(precision).replace(/^-([.0]*)$/, '$1')\n
Run Code Online (Sandbox Code Playgroud)\n


小智 6

num + 0 是最高效、最快的方法。 -0+0是正零。 0+0是正零。负数保持负数,正数保持正数。如果负零业务没有用的话,这只会删除它。