2016-04-13 1 views
1

Кажется, что нотация аргентинского песо (ARS) для валюты полностью противоположна тому, что доллар находится в США. В качестве десятичного разделителя используется ,, а . используется как разделитель тысяч.Преобразование поплавка в валюту Аргентинское песо

  • 1121 =>$1.121,00
  • 1000.5 =>$1.000,50
  • 85.72 =>$85,72

Я посмотрел в numeral (npm numeral js), и я не был в состоянии преобразовать поплавок указанному выше.

Вот что я пробовал:

> numeral('87.75').format('$0.0,00') 
'$87.7500' 
> numeral('87.75').format('$0,0.00') 
'$87.75' 
> numeral('87.75').format('$0,00') 
'$88' 
> numeral('87.75').format('$0.00') 
'$87.75' 
> numeral('87.75').format('$00,00') 
'$88' 
> numeral('87.75').format('$0.00') 
'$87.75' 
> numeral('87.75').format('$00,00') 
'$88' 
> numeral('87.75').format('$00,00.00') 
'$87.75' 
> numeral('87.75').format('$0[.]0.00') 
'$87.8' 
> numeral('87.75').format('$0[.]0[.]00') 
'$87.8' 
> numeral('87.75').format('$0[.]0[,]00') 
'$87.75' 
> numeral('87.75').format('$0[,]0[,]00') 
'$88' 

Это все строки, но это не должно влиять на форматирование.

+1

В худшем случае вы всегда можете 'replace' под' toString' –

+0

У меня нет опыта в этой области, но будет [toLocaleString] (https://developer.mozilla.org/en/docs/Web/ JavaScript/Reference/Global_Objects/Number/toLocaleString) help? –

ответ

1

Вы должны создать свой собственный формат. Прокрутите вниз документацию numeral.js в раздел «Языки» для примера о том, как определить разделители.

numeral.language('es_ar', { 
    delimiters: { 
     thousands: '.', 
     decimal: ',' 
    }, 
    currency: { 
     symbol: '$' 
    } 
}); 

numeral.language('es_ar'); 

numeral(1087.76).format('$0,0.00') 
> "$1.087,76" 
0

toLocaleString, скорее всего, функция, которую вы ищете. Вы можете read about it here.

Вот пример использования его для форматирования номера в качестве валюты для аргентинского песо:

var value = 1234.56; 
var result = value.toLocaleString('es-ar', { 
    style: 'currency', 
    currency: 'ARS', 
    minimumFractionDigits: 2 
}); 

console.log(result); // Prints "$1.234,56" 
+0

Я хотел что-то, что будет работать как на сервере, так и на браузере. Это здорово, хотя, спасибо. – ThomasReggi

+0

Это работает на обоих (это функция ES5), хотя поддержка браузера ограничена только современными браузерами на данный момент. (Примечательно, что Safari пока не имеет хорошей поддержки). – Mark

Смежные вопросы