猿问

如果数字不是整数,则将字符串转换为带小数位的数字

这是一个 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


有什么想法吗?


手掌心
浏览 127回答 2
2回答

牛魔王的故事

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,这将使它工作

猛跑小猪

自定义修饰符 你可以试试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)
随时随地看视频慕课网APP
我要回答