gpt4 book ai didi

javascript - toFixed 不工作

转载 作者:行者123 更新时间:2023-11-30 07:01:51 28 4
gpt4 key购买 nike

我有一个节省价格,它使用 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>';

});

js fiddle 在这里: https://jsfiddle.net/y18h9s7f/

我做错了什么?

最佳答案

你做错的是,在使用 toFixed 转换为字符串后,你又转换回数字,然后调用 toLocaleString('en') 在那个号码上。

您可以或者使用toFixed 来获取具有给定小数位数的非特定于语言环境的字符串, toLocaleString('en') 以获取具有默认位置数的特定于区域设置的字符串,但不能同时获取两者。

如果您的目标环境支持它,您可能想看看使用 Intl.NumberFormat ( spec | MDN )(您可以对其进行功能测试并回退到其他东西) .示例:

const formatter = typeof Intl === "object" && Intl.NumberFormat
? new Intl.NumberFormat('en', { // Yay, we have Intl.NumberFormat
minimumFractionDigits: 2,
maximumFractionDigits: 2
})
: {format: n => n.toFixed(2) }; // Boo, fall back. (Maybe something more intricate here.)
console.log(formatter.format(42.546789));

输出 42.55 因为我使用的是 en 语言环境。如果我对德语使用 de,它会显示 42,55:

const formatter = typeof Intl === "object" && Intl.NumberFormat
? new Intl.NumberFormat('de', { // Yay, we have Intl.NumberFormat
minimumFractionDigits: 2,
maximumFractionDigits: 2
})
: {format: n => n.toFixed(2) }; // Boo, fall back. (Maybe something more intricate here.)
console.log(formatter.format(42.546789));

这个使用浏览器的默认语言环境(例如,用户特定的语言环境):

const formatter = typeof Intl === "object" && Intl.NumberFormat
? new Intl.NumberFormat(undefined, { // Yay, we have Intl.NumberFormat
minimumFractionDigits: 2,
maximumFractionDigits: 2
})
: {format: n => n.toFixed(2) }; // Boo, fall back. (Maybe something more intricate here.)
console.log(formatter.format(42.546789));

关于javascript - toFixed 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47548766/

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