Индийская группировка тысяч, lakhs и crours separator jquery [дубликат]

Если вы вращаетесь на 90 градусов, это возможно:)

  • ширина и высота переменной родительского (и отношения)
  • ребенка всегда на 50% выше, чем его родительский
  • и квадрат

Он будет подходить к другому контенту, если он хочет из-за преобразования.

Codepen

.flex {
  display: table-cell; /* allows "vertical" centering (not possible with flex/grid here because of the padding-top trick on child) */
  width: 12rem;
  height: 20rem;
  vertical-align: middle; /* "vertical" centering */
  transform: rotate(90deg) translateY(-50%); /* vertical becomes horizontal */
  background-color: lightblue;
}

.flex.large {
  height: 35rem;
}

.item {
  width: 50%;
  height: 0;
  margin-left: 25%; /* "horizontal" centering */
  padding-top: 50%; /* padding-top trick for a square */
  background-color: lightyellow;
}

29
задан anand mbs 8 June 2016 в 08:36
поделиться

12 ответов

Для целых:

var x=12345678;
x=x.toString();
var lastThree = x.substring(x.length-3);
var otherNumbers = x.substring(0,x.length-3);
if(otherNumbers != '')
    lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;

alert(res);

Live Demo

Для float:

var x=12345652457.557;
x=x.toString();
var afterPoint = '';
if(x.indexOf('.') > 0)
   afterPoint = x.substring(x.indexOf('.'),x.length);
x = Math.floor(x);
x=x.toString();
var lastThree = x.substring(x.length-3);
var otherNumbers = x.substring(0,x.length-3);
if(otherNumbers != '')
    lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint;

alert(res);

Live Demo

42
ответ дан Prasath K 28 August 2018 в 09:42
поделиться
number.toLocaleString('en-IN');

Это поможет вам отображать в индийской системе нумерации. Посмотрите документацию

2
ответ дан Amal Chacko 28 August 2018 в 09:42
поделиться

С учетом функции числа ниже, она возвращает форматированный номер в индийском формате группировки цифр.

ex: input: 12345678567545.122343

output: 1,23,45 , 67,85,67,545.122343

function formatNumber(num) {
        var n1, n2;
        num = num + '' || '';
        // works for integer and floating as well
        n1 = num.split('.');
        n2 = n1[1] || null;
        n1 = n1[0].replace(/(\d)(?=(\d\d)+\d$)/g, "$1,");
        num = n2 ? n1 + '.' + n2 : n1;
        return num;
}

https://jsfiddle.net/scLtnug8/1/ ​​

4
ответ дан D P Venkatesh 28 August 2018 в 09:42
поделиться

Вот функция

function numberWithCommas(x) {
    return x.toString().substring(0,x.toString().split('.')[0].length-3).replace(/\B(?=(\d{2})+(?!\d))/g, ",") + "," + x.toString().substring(x.toString().split('.')[0].length-3);
}

, если ваш вход 10000.5,

numberWithCommas(10000.5)

Вы получите такой вывод, 10,000.5

0
ответ дан Liam 28 August 2018 в 09:42
поделиться

Исходя из вопроса Nidhinkumar , я проверил приведенные выше ответы и при обработке отрицательных чисел выход будет неправильным, например: -300, он должен отображаться как -300, но приведенные выше ответы будут отображать его как -, 300, что не очень хорошо, поэтому я попытался использовать приведенный ниже код, который работает даже во время отрицательных случаев.

var negative = input < 0;
    var str = negative ? String(-input) : String(input);
    var arr = [];
    var i = str.indexOf('.');
    if (i === -1) {
      i = str.length;
    } else {
      for (var j = str.length - 1; j > i; j--) {
        arr.push(str[j]);
      }
      arr.push('.');
    }
    i--;
    for (var n = 0; i >= 0; i--, n++) {
      if (n > 2 && (n % 2 === 1)) {
        arr.push(',');
      }
      arr.push(str[i]);
    }
    if (negative) {
      arr.push('-');
    }
    return arr.reverse().join('');
0
ответ дан Nidhin kumar 28 August 2018 в 09:42
поделиться

Это должно работать.

var number=12345678;
alert(number.toLocaleString());

вы также можете передать аргументы внутри функции здесь, если defualt примет международную конвенцию. Если вы хотите использовать индийское соглашение, тогда вы должны написать его так.

alert(number.toLocaleString("hi-IN"));

Но этот код будет работать только на Chrome, Mozzilla и IE. Он не будет работать в Safari.

1
ответ дан Nikhil 28 August 2018 в 09:42
поделиться

Попробуйте, как показано ниже, я нашел плагин формата formatter здесь: Номер сценария Java Formatter

Используя это, я сделал код ниже, он отлично работает, попробуйте это , Это поможет вам ..

SCRIPT:

<script src="format.20110630-1100.min.js" type="text/javascript"></script>

<script>
  var FullData = format( "#,##0.####", 125465778)
  var n=FullData.split(",");
  var part1 ="";
    for(i=0;i<n.length-1;i++)
    part1 +=n[i];
  var part2 = n[n.length-1]
  alert(format( "#0,#0.####", part1) + "," + part2);
</script>

Входы:

1) 125465778
2) 1234567.89

Выходы:

1) 12,54,65,778
2) 12,34,567.89
1
ответ дан Pandian 28 August 2018 в 09:42
поделиться

Для целых чисел не требуется никаких дополнительных манипуляций.

Это будет соответствовать каждой цифре с конца, имеющей 1 или более двухзначный шаблон после, и замените ее на себя + ",":

"125465778".replace(/(\d)(?=(\d\d)+$)/g, "$1,");
-> "1,25,46,57,78"

Но поскольку мы хотим иметь 3 в конце, давайте укажем это явно, добавив дополнительные «\ d» до окончания конца ввода:

"125465778".replace(/(\d)(?=(\d\d)+\d$)/g, "$1,");
-> "12,54,65,778"
16
ответ дан slopen 28 August 2018 в 09:42
поделиться

Самый простой способ - использовать плагин Globalize (подробнее об этом здесь здесь и здесь ):

var value = 125465778;
var formattedValue = Globalize.format(value, 'n');
1
ответ дан tpeczek 28 August 2018 в 09:42
поделиться

Я опаздываю, но думаю, это поможет:)

вы можете использовать Number.prototype.toLocaleString ()

Синтаксис

numObj.toLocaleString([locales [, options]])

var number = 123456.789;
// India uses thousands/lakh/crore separators
document.getElementById('result').innerHTML = number.toLocaleString('en-IN');
// → 1,23,456.789

document.getElementById('result1').innerHTML = number.toLocaleString('en-IN', {
    maximumFractionDigits: 2,
    style: 'currency',
    currency: 'INR'
});
// → Rs.123,456.79
<div id="result"></div>
<div id="result1"></div>

21
ответ дан Tushar Gupta 28 August 2018 в 09:42
поделиться

Просто используйте https://osrec.github.io/currencyFormatter.js/

. Тогда вам нужно только:

OSREC.CurrencyFormatter.format(2534234, { currency: 'INR' }); 
// Returns ₹ 25,34,234.00
2
ответ дан Vaibhav Khullar 28 August 2018 в 09:42
поделиться

Эта функция может корректно обрабатывать значение float, просто добавляя к другому ответу

function convertNumber(num) {
  var n1, n2;
  num = num + '' || '';
  n1 = num.split('.');
  n2 = n1[1] || null;
  n1 = n1[0].replace(/(\d)(?=(\d\d)+\d$)/g, "$1,");   
  num = n2 ? n1 + '.' + n2 : n1;
  n1 = num.split('.');
  n2 = (n1[1]) || null;
  if (n2 !== null) {
           if (n2.length <= 1) {
                   n2 = n2 + '0';
           } else {
                   n2 = n2.substring(0, 2);
           }
   }
   num = n2 ? n1[0] + '.' + n2 : n1[0];

   return num;
}

эта функция преобразует всю функцию в float, поскольку она

function formatAndConvertToFloatFormat(num) {
  var n1, n2;
  num = num + '' || '';
  n1 = num.split('.');
  if (n1[1] != null){
    if (n1[1] <= 9) {
       n2 = n1[1]+'0';
    } else {
       n2 = n1[1]
    }
  } else {
     n2 = '00';
  }
  n1 = n1[0].replace(/(\d)(?=(\d\d)+\d$)/g, "$1,");
  return  n1 + '.' + n2;
}
1
ответ дан Yatender Singh 28 August 2018 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: