Форматирование валюты, если нет копеек, то не показывать .00

#javascript

#javascript

Вопрос:

Изо всех сил пытаясь найти правильное решение здесь, используя приведенный ниже код, я получаю следующий результат:

 parseFloat(value).toLocaleString('en-GB')

10000  => 10,000 
512.25 => 512.25
512.20 => 512.2
 

Чего я ожидал бы, так это:

 10000  => 10,000 
512.25 => 512.25
512.20 => 512.20
 

Изменив JavaScript на приведенный ниже, исправляет 512.20 , но тогда я получаю 10,000.00 то, чего не хочу!

 parseFloat(value).toLocaleString('en-GB', { style: "currency", currency: "GBP" })
 

Комментарии:

1. Быстрое и грязное решение — просто заменить строку .00 Редактировать: на самом деле, вы делаете это с несколькими валютами? (Так что у вас было бы ,00 или .00 ? Если это так, стоит упомянуть об этом в вопросе)

2. Как насчет использования .replace(/.0 $/, '') в результате? Использование 00 вместо 0 должно тоже работать — до тех пор, пока есть две минимальные дробные цифры.

Ответ №1:

 let b = 512.30;
let c = b.toFixed(2).toLocaleString('en-GB')
console.log(c)
 

Комментарии:

1. parseFloat('10000').toFixed(2).toLocaleString('en-GB') = 10000.00, не работает

2. Прочитайте вопрос еще раз.