我可以检查Javascript中的整数结束

问题描述 投票:-1回答:4

如果它在',00'结束,我想在价格后删除小数。如果它以任何其他结束它应该保留。我必须能够看到价格结束这样做,但我如何在Javascript中实现这一目标?

我的想法是检查价格是否在00结束并在if语句中删除它。

function gformFormatMoney(text, isNumeric){ 
if(!gf_global.gf_currency_config)
return text;

var currency = new Currency(gf_global.gf_currency_config);
var unformatted = currency.toMoney(text, isNumeric);
var formatted;
var formatting = unformatted%10;
if(formatting == 00) {

} 

return unformatted;
}

^这会产生错误'不允许使用前缀为0的Octal litterals'

javascript gravityforms
4个回答
1
投票

您需要将数字解析为浮点数,将其修改为2位小数(在所有情况下),并删除(.00)的所有匹配项。像这样的东西可以工作:

function fixFloat(num){
  return parseFloat(num).toFixed(2).replace('.00', '');
}

console.log(fixFloat(20.00));
console.log(fixFloat(40.40));
console.log(fixFloat(30.01));

请注意,这将返回一个字符串。如果您希望将其转换回数字,则需要再次解析它。


0
投票

如果数据类型不是字符串,则将删除小数后的尾随零。如果是字符串,请使用parseInt转换为数字

let price = 20.00;
console.log(price)

let price1 = '40.00'
console.log(parseInt(price1, 10))

let price2 = '40.00'
console.log(parseFloat(price2, 10))

0
投票

你应该使用toFixed。

至于:

let num = 50.00;
num.toFixed(2).includes('.00') ? num.toFixed() :num.toFixed(2);

0
投票

原来它不是一个整数,而是一个字符串。

我通过这样做来修复它:

function gformFormatMoney(text, isNumeric){
if(!gf_global.gf_currency_config)
    return text;

var currency = new Currency(gf_global.gf_currency_config);
var unformatted = currency.toMoney(text, isNumeric);
var formatted = unformatted.replace(',00', '');

return formatted;
}
© www.soinside.com 2019 - 2024. All rights reserved.