toFixed(3) -6.1e-15 返回 -0.000,我怎样才能放弃负号?
it ("tests a positive zero", function() {
expect((Math.sin(-1*Math.PI)*300).toFixed(3)).toEqual("0.000");
});
但它失败了,因为它产生 -0.000(在 chrome 和 safari 上测试)。用 regexp.replace 删除 - 是我的最后一个(也是目前唯一的解决方案)还有更多吗?
it ("tests a positive zero", function() {
expect((Math.sin(-1*Math.PI)*300).toFixed(3)).toEqual("0.000");
});
But it fails, because it yields -0.000 (tested on chrome and safari). Removing the - with a regexp.replace is my last (and currently only solution) are there more?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Math.abs((Math.sin(-1*Math.PI)*300)).toFixed(3)
不起作用吗?[根据评论编辑]或:
Number((Math.sin(-1*Math.PI)*300).toFixed(3)).toFixed(3);
Wouldn't
Math.abs((Math.sin(-1*Math.PI)*300)).toFixed(3)
work?[edit based on comment] or:
Number((Math.sin(-1*Math.PI)*300).toFixed(3)).toFixed(3);
测试“正零”是不正确的。如果您希望数字为 0.000 到 3 dp,只需检查该数字是否在 (-0.0005, 0.0005) 范围内。例如,
(如果您的
expect 尚未以不同的名称提供该方法,您可能需要将
Between 方法添加到您的
expect
中。)Testing for "positive zero" is incorrect. If you want the number to be 0.000 to three dp, just check that the number is within (-0.0005, 0.0005). e.g.,
(You may need to add a
between
method to yourexpect
, if it doesn't already provide it under a different name.)