如何在jasmine中将两个对象与浮点值进行比较?

Fre*_*ind 6 javascript floating-point object jasmine

我需要在Jasmine中做一些期待,比如:

let realValue = callSomeMethod();
let expected = [{
    total: 33,
    saved: 1.65
}];
expect(realValue).toEqual(expected);
Run Code Online (Sandbox Code Playgroud)

但它失败了,消息是:

Expect [ Object({ total: 33, saved: 1.6500000000000001 })] 
to equal [Object({ total: 33, saved: 1.65 })].
Run Code Online (Sandbox Code Playgroud)

我怎样才能做正确的检查?

fai*_*182 9

toBeCloseTo匹配是精密的数学比较:

expect(1.6500000000000001).toBeCloseTo(1.65, 2);
expect(1.6500000000000001).toBeCloseTo(1.65, 15);
expect(1.6500000000000001).not.toBeCloseTo(1.65, 16);
Run Code Online (Sandbox Code Playgroud)

来源:茉莉花匹配