Javascript 浮点数学混乱

Javascript 浮点数学混乱,javascript,math,Javascript,Math,我试图得到两个数字之间的百分比,以显示折扣方面的差异。我试着尽可能地简化它,但我仍然不能得到我想要的 这里有一个例子。 我想得到的是alert()返回值25.50。但是,我得到了25.47 有没有办法把这件事做好?25.47486。。。这是正确的答案。如果您试图四舍五入到最接近的十分之一,您可以使用: $(window).load(function() { var RegPrice = 8.95; var OnSale = 6.67; var OnSaleAT = Ma

我试图得到两个数字之间的百分比,以显示折扣方面的差异。我试着尽可能地简化它,但我仍然不能得到我想要的

这里有一个例子。 我想得到的是
alert()
返回值
25.50
。但是,我得到了
25.47


有没有办法把这件事做好?

25.47486。。。这是正确的答案。如果您试图四舍五入到最接近的十分之一,您可以使用:

$(window).load(function() {

    var RegPrice = 8.95;
    var OnSale = 6.67;
    var OnSaleAT = Math.round(Math.abs(Math.max(100.00 - 6.67 / 8.95 * 100.00)) * 10.00) / 10.00

    alert(OnSaleAT.toFixed(2));
});
var result = Math.round(OnSaleAT * 10) / 10;

输出:25.5,然后您可以根据自己的喜好格式化您的答案。

25.47486。。。这是正确的答案。如果您试图四舍五入到最接近的十分之一,您可以使用:

var result = Math.round(OnSaleAT * 10) / 10;

其中输出:25.5,然后您可以根据自己的喜好格式化您的答案。

如果您试图将其四舍五入到25.5%,您只需使用toFixed参数1而不是2来发出警报:

alert(OnSaleAT.toFixed(1));

除此之外,Rob W是对的……计算结果是25.47,对此你无能为力。

如果你想将四舍五入到25.5%,你可以用toFixed参数1而不是2来提醒:

alert(OnSaleAT.toFixed(1));
除此之外,Rob W是对的……计算结果是25.47,你对此无能为力。

尝试一下saleat.toFixed(1)+'0':)

尝试一下saleat.toFixed(1)+'0')

Math.ceil(1000*(1-OnSale/RegPrice))/10

给你“25.5”

:)

Math.ceil(1000*(1-OnSale/RegPrice))/10

给你“25.5”


:)

基本算术运算不需要jQuery。另外,
25.47%
的折扣是正确的。它与jQuery有关的是,jQuery不是javascript
6.67/8.95=0.74525
100-74.525=25.475
,小数点后两位是
25.47
。如果要进行舍入,则需要使用
Math.round()
。基本算术运算不需要jQuery。另外,
25.47%
的折扣是正确的。它与jQuery有关的是,jQuery不是javascript
6.67/8.95=0.74525
100-74.525=25.475
,小数点后两位是
25.47
。如果你想取整,你需要使用
Math.round()
。我也会使用这段代码。此代码必须添加到
var OnSaleAT
之后。警报看起来像:
alert(result,toFixed(2))。谢谢,这就是我想要得到的。我也会使用此代码。此代码必须添加到
var OnSaleAT
之后。警报看起来像:
alert(result,toFixed(2))。谢谢,这就是我想要的。