gpt4 book ai didi

javascript - 基于用户输入的价格计算 React JS

转载 作者:行者123 更新时间:2023-12-02 22:42:21 24 4
gpt4 key购买 nike

我有一个函数可以根据平方英尺和基本价格计算价格。

2000平方英尺之后,每500平方英尺价格上涨10%。 2000 平方英尺及以下的面积为 149.99。

函数如下...

checkPrice = () => {
debugger;
let base_price = 149.99;
if(this.state.propertySqft > 2000){
let overage = this.state.propertySqft - 2000;
let percentage = Math.floor(overage % 500) * 10;
base_price += base_price * percentage;
this.setState({ totalPrice: base_price });

}
}


我遇到的问题是,如果平方英尺是整数,则百分比显示为“0”,并且math.ceil(overage % 500) 似乎无法正常工作。

例如...如果我要输入 5001 平方英尺,价格应为 149.99 * 60%,即 239.98,但由于 百分比 最终结果为 164.98是 10,而不是 60。

如果我输入 5000 平方英尺,百分比 将显示为“0”,对于我输入的任何整数作为平方英尺都是这种情况。

有谁知道我在这里做错了什么或者为什么这没有按照我期望的方式工作?

最佳答案

模运算符用于获取到下一个较低倍数的距离,例如2006 % 500 将是 6,如 500 * 4 + 6 = 2006。您想要,在本例中得到 4:2006/500 = 4.00...,然后将其取整到下一个整数。

此外,如果将基本价格乘以 10,则不会增加 10%,而是增加 1000%。您可能需要 0.1(每百人 10)。

我会把它写成:

 const basePrice = 149.99;

const checkPrice = () => {
this.setState(({ propertySqft }) => { // asynchronous access to this.state is dangerous, use a callback!
const percentage = Math.max(
0, // ensure that it only gets more
Math.floor((propertySqft - 2000) / 500) * (10 / 100)
);

return { totalPrice: basePrice * (1 + percentage), };
});
};

关于javascript - 基于用户输入的价格计算 React JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58544927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com