toFixed不工作

时间:2017-11-29 09:02:42

标签: javascript jquery

我有一个保存价格,使用Math.ceil方法将输出四舍五入到最接近的£,但是当我执行toFixed给我25.00英镑时,我得到的只是25英镑。

我的代码是这样的: -

jQuery(function($) {
    var price = $('.product-info-short meta[itemprop="price"]').attr("content");
    var discount = price/10;
    var earlyBirdPrice = price-discount;
    var div = document.querySelector('.earlyBirdPrice');


//method for early bird price//
div.innerHTML += '<div class="earlyBirdPrice">Price: £' + 
Number(earlyBirdPrice.toFixed(2)).toLocaleString('en') + '</div>';

//method for discount price//
div.innerHTML += '<div class="discount"> Saving you £' + 
Number(Math.ceil(discount.toFixed(2))).toLocaleString('en') + 
'</div>';

});

这里小提琴: https://jsfiddle.net/y18h9s7f/

我做错了什么?

3 个答案:

答案 0 :(得分:2)

试试这个: -

div.innerHTML += '<div class="discount"> Saving you £' + Number(Math.ceil(discount)).toFixed(2) + '</div>';

演示: - https://jsfiddle.net/f18o1v91/

答案 1 :(得分:1)

你需要

  • 删除Number构造函数包装
  • 直接将Math.ceil应用于discount

成功

Math.ceil(discount).toFixed(2)
  我得到的只是25英镑。

如果小数点后只有0,基本上Number constructor将删除小数。

console.log( Number( "25.00" ) );
var discount = 25.00;
console.log(Math.ceil(discount).toFixed(2))

答案 2 :(得分:1)

您显然需要删除Number包装:

来自:

Number(Math.ceil(discount.toFixed(2))).toLocaleString('en')

致:

Math.ceil(discount).toFixed(2).toLocaleString('en')