如何在笑话中检查浮点数的严格相等

问题描述 投票:0回答:2
  it('returns the median for even number of grades', () => {
    const grades = [80, 90, 85, 110, 100, 60]
    const expectedMedian = 87.50
    const median = calculateMedian(grades)
    expect(median).toBe(expectedMedian)
  })

这个测试通过了,但我不希望

87.5
87.50
相等。

javascript jestjs
2个回答
2
投票

在数字中,我了解到,您更想检查两个浮点数的差异是否低于(小)阈值。

参见机器 epsilon

所以这里使用 Jest 的 toBeLessThanOrEqual


0
投票

如何处理这个问题取决于

calculateMedian
返回的内容。如果您要比较浮点数,请使用
.toBeCloseTo(number, numDigits?)

it('returns the median for even number of grades', () => {
  const grades = [80, 90, 85, 110, 100, 60]
  const expectedMedian = 87.50
  const median = calculateMedian(grades)
  expect(median).toBeCloseTo(expectedMedian)
});

如果

calculateMedian
返回一个字符串(根据注释似乎是这种情况),那么您可以使用
.toBe()
,但使
expectedMedian
成为一个字符串:

it('returns the median for even number of grades', () => {
  const grades = [80, 90, 85, 110, 100, 60]
  const expectedMedian = '87.50'
  const median = calculateMedian(grades)
  expect(median).toBe(expectedMedian)
});
© www.soinside.com 2019 - 2024. All rights reserved.