我可以检查以 Javascript 结尾的整数吗

Can I check on what an integer ends in Javascript

如果价格以“,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;
}

^这会报错'Octal litterals with the prefix 0 are not allowed'

如果数据类型不是字符串,小数点后的尾随零将被删除。如果它是一个字符串使用 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))

你应该使用 toFixed。

至于:

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

您需要将数字解析为浮点数,将其固定为 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));

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

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

我通过以下方式修复了它:

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;
}