例如,最初我有这样的代码:
function(x,y){
let z=x+y;
.
.
.
}
后来我发现y必须与x相同,想将x+y重构为x * 2,但需要保证重构前后整个程序的行为相同。 x+x 与 x*2 相同吗?我不知道 + 和 * 是否使用不同的计算机制,从而导致舍入到不同的结果。
我测试过:
for(let i=0.01;i<100;i++){
if(i+i!=i*2){
console.log(i);
break;
}
}
对于 i 的某些范围似乎是正确的,但不知道是否对于所有浮点数都正确。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号