Могу ли я проверить, что целое число заканчивается в Javascript - PullRequest
0 голосов
/ 06 марта 2019

Я хочу удалить десятичные дроби после цены, если она заканчивается на ', 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 недопустимы»

Ответы [ 4 ]

1 голос
/ 06 марта 2019

Вам необходимо проанализировать ваши числа как числа с плавающей точкой, исправить их на 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 голосов
/ 06 марта 2019

Оказывается, это было не целое число, а строка.

Я исправил это, выполнив:

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;
}
0 голосов
/ 06 марта 2019

Вы должны использовать toFixed.

как для:

let num = 50.00;
num.toFixed(2).includes('.00') ? num.toFixed() :num.toFixed(2);
0 голосов
/ 06 марта 2019

Если тип данных не строковый, конечные нули после десятичной дроби будут удалены.Если это строка, используйте 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))
...