如何在JavaScript中成千上万?

时间:2019-04-02 13:36:29

标签: javascript

function multiplicar() {
  m1 = document.getElementById("multiplicando").value;
  m2 = document.getElementById("multiplicador").value;

  m3 = m2 * 0.01;
  x = m3 * parseFloat(m1);
  x1 = x - 2380000;

  document.getElementById("resultado").value = x1.toLocaleString();
}
const numberWithCommas = (x) => {
  return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

function Sumar() {
  var n1 = 1;
  var n2 = document.getElementById('multiplicador').value;
  var suma = parseInt(n1) + parseInt(n2);
  document.getElementById("multiplicador").value = suma;
  multiplicar();
}

function resta() {
  var r1 = 1;
  var r2 = document.getElementById('multiplicador').value;
  var resta = parseInt(r2) - parseInt(r1);
  document.getElementById("multiplicador").value = resta;
  multiplicar();
}
<form id="multiplicar">
  <div class="container-block">
      <label>$</label> <input type="text" name="multiplicando" id="multiplicando" value="300000000" onChange="multiplicar();" onkeydown="noPuntoComa( event )" placeholder="Escribe el valor">
  </div>

  <div class="container-block">
    <input type="button" onclick="resta();" value="-" class="resta">
    <div class="container-input">
      <input type="text" name="multiplicador" id="multiplicador" value="3" onChange="multiplicar();" onkeyUp="multiplicar();" min="0" pattern="^[0-9]+">
      <label style="    right: 130px;">%</label>
    </div>
    <input type="button" onclick="Sumar();" value="+" class="suma">
  </div>

  <div class="container-block-resultado">
      <label>$</label> <input type="text" id="resultado">
  </div>

</form>

我正在学习一些JavaScript,我想用数千个小数学运算。示例:300,000,000 * 3%= 900,000这是应该显示给用户的内容,用户可能会像计算器一样提高或降低百分比或值,而我找不到如何将数字相乘并以javascript中的百分比表示。

2 个答案:

答案 0 :(得分:3)

因此将您的字符串转换为数字。删除逗号并转换为数字。将百分比转换为十进制数。要添加时,请添加回逗号。

function removeComma (str) {
  return Number(str.replace(/,/g, ''))
}
function makePercentage (str) {
  return Number(str.replace(/%/, '')) / 100
}
function addCommas (number) {
  return number.toLocaleString()
}

var str1 = "300,000,000"
var str2 = "3%"

var mathResult = removeComma(str1) * makePercentage(str2)
var result = addCommas(mathResult)

console.log(result)

答案 1 :(得分:0)

  

JavaScript具有局限性,因此在这种情况下,最大安全整数为   2147483647.还有一些用于处理大int值计算BigNumber.js的库。

我建议使用整数,但是如果您需要使用非常大的整数,我建议使用较大的数字或较大的整数库,例如其中之一:

http://jsfromhell.com/classes/bignumber https://silentmatt.com/biginteger/ 缺点是您必须使用这些数字对象及其方法,而不是原始的Number类型和标准JS运算符,但是在处理大数时将具有更大的灵活性。