2016-04-13 3 views
1

Как я могу получить разделители запятой в результатах расчета? (123456789, чтобы показать, как 123,456,789)Добавление разделителей запятой в результат вычисления

function calculate(){ 
a=Number(document.calculator.number1.value); 
b=Number(document.calculator.number2.value); 

A1=a*2000 
document.calculator.totalA1.value=A1; 
A2=a*b*240 
document.calculator.totalA2.value=A2; 
A3=a*8*240 
document.calculator.totalA3.value=A3; 
A4=a*960*5 
document.calculator.totalA4.value=A4; 
A5=a*3600*5 
document.calculator.totalA5.value=A5; 
A6=a*3000 
document.calculator.totalA6.value=A6; 
A7=A1+A2+A3+A4+A5+A6 
document.calculator.totalA7.value=A7; 
A8=a*120000 
document.calculator.totalA8.value=A8; 
A9=A8-A7 
document.calculator.totalA9.value=A9; 
} 

Я видел много предложений, но не знаю, куда вставить скрипт. Спасибо!

+1

Вы имеете в виду, например, 2000? Просто stringsplit число и вставить запятые каждые 3 символа. – Danmoreng

+1

Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. –

ответ

0

Здесь вы идете: https://jsfiddle.net/odewuqun/3/

function addPunctuation(number){ 
    var array = number.toString().split(""); 
    var output = ""; 
    var first = true; 
    for(var i = array.length-1; i >= 0; i--){ 
     if((array.length-i-1) % 3 === 0){ 
     if(first){ 
      first = false; 
     }else{ 
      output = "," + output; 
     }  
     } 
     output = array[i] + output; 
    } 
    return output; 
} 

Краткое объяснение:

  • Преобразовать число в строку.
  • Разделить эту строку в массив.
  • Итерации над этим массивом с конца и создание новой строки, в которую вы добавляете, между каждыми тремя символами.

То есть archieved индекс% 3 === 0. (% является математическим оператором по модулю для целого числа деления с остальным)

1

Вы могли бы попробовать что-то вроде этого, используя RegExp

$("#button").click(function(){ 
 
    var a = 100; 
 
    var A1=(a*2000); 
 
    alert(String(A1).replace(/(\d{3})(?!$)/g, "$1,")); 
 
})
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script> 
 
<button type="button" id="button">Calculate </button>

+0

Интересное решение тоже. – Danmoreng

+0

Спасибо, я только начал изучать, как работает регулярное выражение, поэтому я надеюсь, что это действительно приемлемое решение. –

+0

Что мне интересно, если регулярное выражение или решение для цикла более результативны, к сожалению, jsperf, похоже, сейчас не работает. – Danmoreng

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