打字稿模数操作是错误的(或不准确)?

时间:2017-08-30 15:29:38

标签: typescript modulo

我正在使用Typescript 2.4并且遇到一个简单的模运算:

我写了一个简单的模运算符单元测试来解释我的问题

fit('TypeScript should be able to do a simple mathematic modulo : ', () => {
  expect(318.08 % 60).toBe(18.08);
});

正如你猜测的那样......这个测试失败了(预计18.079999999999984为18.08。)。

我错过了什么?

正如你所看到谷歌这款游戏更好:D: https://www.google.fr/search?q=318.08+%25+60&oq=318.08+%25+60&gs_l=psy-ab.3...2056882.2060253.0.2061466.11.11.0.0.0.0.440.1441.2j2j1j1j1.7.0....0...1.1.64.psy-ab..4.5.1213...0j35i39k1j0i5i30k1.W8XFPAxxO44

1 个答案:

答案 0 :(得分:0)

这不是打字稿问题,它是双精度问题。这是在两个双精度数上使用模数时生成的值(在C#中检查也得到相同的值)

您可以将结果四舍五入到小数点后两位

Math.round(100 *(318.08  % 60)) / 100