我有一些JavaScript用于计算包含总值的表单字段的百分比折扣。
var thirteen = 10;
var percent_discount = (thirteen) * 0.01;
var percent_discount_final = (382.50 * (percent_discount));
console.log(percent_discount_final.toFixed(2));
计算输出为38.24 ??
为什么会这样?
答案 0 :(得分:0)
嗯,应该是全价减去折扣 - 第三行是:
var percent_discount_final = value_of_some_form_field - (value_of_some_form_field * percent_discount);
答案 1 :(得分:0)
您几乎找到了合适的乘数,但是您忘了从1
中减去,因此您乘以0.1
而不是0.9
。
以下是如何从数字中减去任何百分比的示例。
const subtractPercent = (value, percentage) => {
const multiplier = 1 - (percentage / 100);
return value * multiplier;
};
subtractPercent(250, 10); // 225
subtractPercent(250, 3); // 242.5
与您的类似,此函数假设value
为正,为简单起见。负值将添加而不是减去。
subtractPercent(250, -10); // 275
subtractPercent(-250, 10); // -225
答案 2 :(得分:0)
有趣的事实 - 浮动类型并不精确。它来自大量的理论,并且通过设计它是近似的。这就是为什么几种语言也提供货币等类型的原因,而对于那些不用的语言,我们计算整数上的所有货币内容。它不是与javascript相关的" bug",它是计算机科学"功能" :)
如何计算整数的货币内容?好吧,你必须创建/模拟新类型。一般的想法是
JS是这个项目中唯一涉及的语言吗?如果有一些例如某些SQL数据库,其中大多数都有专用的货币类型,因此您可以在数据库端进行所有计算。