为什么我得到错误的除法答案?
Why am I getting the wrong division answer?
超级简单 - 我是 运行 React 中的一个 useEffect 函数。我需要做一个简单的计算,但我总是得到错误的答案。
例如,我得到 10
作为答案而不是预期的 8,960...
一开始我以为可能是一个字符串而不是一个Int,但是没有区别。
const price = 5.58;
console.log(price); // returns 5.58
const money = 50.00;
console.log(money); // returns 50
const dev = parseInt(money) / parseInt(price);
console.log(dev) // returns 10 ???.
我预计它 const dev
到 return 8,960573476702509
但它 return 变成了 10
你需要使用 parseFloat
因为你正在处理十进制数
const price = 5.58;
console.log(price);
const money = 50.00;
console.log(money);
const dev = parseFloat(money) / parseFloat(price);
console.log(dev)
const price = 5.58;
console.log(price); // returns 5.58
const money = 50.00;
console.log(money); // returns 50
const dev = money / price;
console.log(dev) // returns 10 ???.
你正在做两个整数之间的除法,因为 parseInt(50.00)
会得到 50
而 parseInt(5.58)
会得到 5
,所以你的计算会做 50/5
等于 10
。要使用浮点数执行数学运算,无需解析它们,因为它们已经是浮点数:
const price = 5.58; // already a float
console.log(price); // returns 5.58
const money = 50.00; // already a float
console.log(money); // returns 50
const dev = money / price;
console.log(dev) // 8.960573476702509
超级简单 - 我是 运行 React 中的一个 useEffect 函数。我需要做一个简单的计算,但我总是得到错误的答案。
例如,我得到 10
作为答案而不是预期的 8,960...
一开始我以为可能是一个字符串而不是一个Int,但是没有区别。
const price = 5.58;
console.log(price); // returns 5.58
const money = 50.00;
console.log(money); // returns 50
const dev = parseInt(money) / parseInt(price);
console.log(dev) // returns 10 ???.
我预计它 const dev
到 return 8,960573476702509
但它 return 变成了 10
你需要使用 parseFloat
因为你正在处理十进制数
const price = 5.58;
console.log(price);
const money = 50.00;
console.log(money);
const dev = parseFloat(money) / parseFloat(price);
console.log(dev)
const price = 5.58;
console.log(price); // returns 5.58
const money = 50.00;
console.log(money); // returns 50
const dev = money / price;
console.log(dev) // returns 10 ???.
你正在做两个整数之间的除法,因为 parseInt(50.00)
会得到 50
而 parseInt(5.58)
会得到 5
,所以你的计算会做 50/5
等于 10
。要使用浮点数执行数学运算,无需解析它们,因为它们已经是浮点数:
const price = 5.58; // already a float
console.log(price); // returns 5.58
const money = 50.00; // already a float
console.log(money); // returns 50
const dev = money / price;
console.log(dev) // 8.960573476702509