簡體   English   中英

如果數字不完整,則將字符串轉換為帶小數位的數字

[英]Converting string to number with decimal places if the number isn't whole

這既是 PHP 和 JS 問題。

我從 API 那里得到一堆價格,它以字符串的形式返回。

“62.50”、“16.67”、“150.00”

我需要做的是,使用 PHP,將它們轉換為 a)如果小數點后的數字是 00,則將其轉換為數字/整數,並且 b)將 0 保留為一個小數點 0。

“62.50” => 62.50 “16.67” => 16.67 “150.00” => 150

然后我要做的是,使用 JS,包括貨幣。

addCurrency: function(price, currencyCode) {
        return parseFloat(price).toLocaleString(navigator.language, {
            style: 'currency', currency: currencyCode, minimumFractionDigits: 0, maximumFractionDigits: 2
        });
    }

我已經嘗試了很多價格floatvar(float)等的變化,但唯一的問題是“62.50”變成了 62.5

有什么想法嗎?

addCurrency: function(price, currencyCode) {
        return parseFloat(price).toLocaleString(navigator.language, {
            style: 'currency', currency: currencyCode, minimumFractionDigits: Number.isInteger(parseFloat(price)) ? 0 : 2, maximumFractionDigits: 2
        });
    }

minimumFractionDigits設置為Number.isInteger(parseFloat(price))? 0: 2 Number.isInteger(parseFloat(price))? 0: 2 ,這將使它工作

自定義修飾符你可以試試

 const result = ['62.50', '150.00'].map(el => { if(el.split('.')[1] === '00') { return el.split('.')[0] } return el; }) console.log(result)

返回號碼:

const result = ['62.50', '150.00'].map(el => {
    if(el.split('.')[1] === '00') {
    return Number(el.split('.')[0])
}
return Number(el);
})
console.log(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM