Javascript returning SUM 0



很抱歉,这个基本的JS问题。

我有这样的代码:

const value0 = parseInt(this.value0); // 8500
const value1 = parseInt(this.value1); // 3.5
const value2 = parseInt(this.value2); // 5700
const value3 = parseInt(this.value3); // 0.3
const valueExtra = parseInt(this.valueExtra); // 10.5
let myResult = 0
if (value0 > (value1 * value2)) {
myResult = (value1 * value2) * value3;
} else {
myResult = valueExtra * value3;
}
return ( myResult )

我的值总是0。

我知道这是因为let是不变的,但我不知道为什么。

你能帮我一下吗?

parseInt('0.3')= 0。其中一个值是0,所以结果总是0。试试用parseFloat代替。

const value0 = parseInt(`8500`);
const value1 = parseInt(`3.5`);
const value2 = parseInt(`5700`);
const value3 = parseInt(`0.3`);
const valueExtra = 1;
console.log(`values check: ${[value0, value1, value2, value3]}`);
let myResult = 0;
if (value0 > (value1 * value2)) {
myResult = (value1 * value2) * value3;
console.log(`parseInt: value0 > (value1 * value2)=> ${myResult}`);
} else {
myResult = valueExtra * value3;
console.log(`parseInt: else => ${myResult}`);
}
// use parseFloat
const [v0, v1, v2, v3, vE] = [
parseFloat(`8500`),
parseFloat(`3.5`),
parseFloat(`5700`),
parseFloat(`0.3`),
1 ];
console.log(`values check: ${[v0, v1, v2, v3]}`);
if (v0 > (v1 * v2)) {
myResult = (v1 * v2) * v3;
console.log(`parseFloat: v0 > (v1 * v2)=> ${myResult}`);
} else {
myResult = vE * v3;
console.log(`parseFloat: else => ${myResult}`);
}

最新更新