很抱歉這個基本的 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 沒有改變,但我不知道為什么。
請問你能幫幫我嗎?
uj5u.com熱心網友回復:
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}`);
}
uj5u.com熱心網友回復:
請使用 parseFloat(用于決議浮點數)而不是 parseInt。
const value0 = parseFloat("8500"); // 8500
const value1 = parseFloat("3.5"); // 3.5
const value2 = parseFloat("5700"); // 5700
const value3 = parseFloat("0.3"); // 0.3
const valueExtra = parseFloat("10.5"); // 10.5
let myResult = 0
if (value0 > (value1 * value2)) {
myResult = (value1 * value2) * value3;
} else {
myResult = valueExtra * value3;
}
console.log(myResult)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494413.html
標籤:javascript
