Cypress 柏树处理小数点
我试图对所有表列值求和,并且值的总和必须为1。 如图像值所示,实际值的总数为1,但显示为1.0000000000000002。 我不知道哪里出了问题。我从json文件中获取值,值在json文件中也是相同的。一定是小数点后的错误。如何处理这个问题Cypress 柏树处理小数点,cypress,Cypress,我试图对所有表列值求和,并且值的总和必须为1。 如图像值所示,实际值的总数为1,但显示为1.0000000000000002。 我不知道哪里出了问题。我从json文件中获取值,值在json文件中也是相同的。一定是小数点后的错误。如何处理这个问题 var sum = 0 var expectedSum=1 cy.get('td :nth-child(3) > input:visible').each(($el, index, $list) => { // var
var sum = 0
var expectedSum=1
cy.get('td :nth-child(3) > input:visible').each(($el, index, $list) => {
// var result =parseFloat($el.val())
var result =$el.val()
sum=Number(sum)+Number(result)
cy.log(result)
}).then(function()
{
cy.log('allocation total:'+sum)
//assertion to check total alocation percent is 100
expect(sum).to.equal(expectedSum)
})
检查差异是否低于某个阈值 从日志上看,你的数字不超过3位小数,所以
expect(Math.abs(1-sum)).to.be.低于(0.001)
这是js作为一种语言的问题,而不是cypress,在您的情况下,您需要在测试之前对结果进行四舍五入。您可能不知道0.3+0.2!==0.5//true
在js:)@alexnikonov在不改变测试数据的情况下有可能吗?我不这么认为,但可能是您可以使用toFixed(0.4+0.2)。toFixed(2)==0.60
,对于您的示例,它将是expect(sum.toFixed(3)).to.equal(expectedSum)
,这取决于您的精度需要