Как добавить разделитель тысяч в строку с JS или JQuery в этой конкретной функции? - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу добавить тысячи разделителей (;) к выводу функции ниже. В проекте, над которым я работаю, есть 15 очень похожих функций. Всем нужна функциональность toFixed (). Мне нужно уметь манипулировать количеством десятичных чисел, отображаемых в выходных данных. Я новичок в программировании и JS! Я пытался решить эту проблему, используя все аналогичные решения, которые я нашел в Stack Overflow, но пока не мог решить эту проблему в одиночку. Можете ли вы предоставить решение, которое будет работать с функцией ниже. Спасибо!

function changePictoryTaleYearRevenuesOutput(avg_number_spots, inv_cal_monthly_vps, avg_price_per_vps){
    var pictorytale_year_revenues = avg_number_spots * inv_cal_monthly_vps * avg_price_per_vps * ((12 / 1000000) / 0.771145238184416);
    $("#pictorytale_year_revenues").html(pictorytale_year_revenues.toFixed(0));
}

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Intl.NumberFormat сделает это, и вы можете установить точность или превратить ее в представление валюты.

Разделитель тысяч варьируется в зависимости от региона (страны)
Вы упомяните ;, но для меня в en-US это запятая ,
Intl.NumberFormat будет использовать правильный разделитель, просто указав локаль.

Вы можете создать один (или несколько) заранее или создайте их по мере необходимости.

const en_formatter = new Intl.NumberFormat('en-US', { maximumSignificantDigits: 8, maximumFractionDigits: 3 });
const en_currency = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });

let value = 54321.123;

let formatted = en_formatter.format(value);
console.log(formatted);
let currency = en_currency.format(value);
console.log(currency);
0 голосов
/ 11 февраля 2020

Вы можете перевернуть строку и использовать регулярное выражение, а затем снова перевернуть, например так:

var mySeparatorRegex = /\d\d\d(?=\d)/g;
var myString = ...;
var myReversedString = myString.reverse();
var myReversedNewString = myReversedString.replace(mySeparatorRegex, function(val) {
  return val + ";";
}
var newString = myReversedNewString.reverse();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...