toFixed(3) -6.1e-15 返回 -0.000,我怎样才能放弃负号?

发布于 2024-12-01 09:06:30 字数 242 浏览 0 评论 0原文

  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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暮色兮凉城 2024-12-08 09:06:30
Math.abs(number);//<<absolute value
Math.abs(number);//<<absolute value
南烟 2024-12-08 09:06:30

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);

美煞众生 2024-12-08 09:06:30

测试“正零”是不正确的。如果您希望数字为 0.000 到 3 dp,只需检查该数字是否在 (-0.0005, 0.0005) 范围内。例如,

expect(Math.sin(-Math.PI) * 300).between(-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.,

expect(Math.sin(-Math.PI) * 300).between(-0.0005, 0.0005);

(You may need to add a between method to your expect, if it doesn't already provide it under a different name.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文