如何在javascript中计算点值?

时间:2016-04-16 07:47:27

标签: javascript

我编写了代码来计算整数值等值。

function add_number(inp) {
    var tr = inp.parentNode.parentNode;
    var first_number = parseInt(tr.querySelector('[data-id="qty"]').value);
    var second_number = parseInt(tr.querySelector('[data-id="amtper"]').value);

    var result = first_number * second_number;
    tr.querySelector('[data-id="total"]').value = result ? result : '';
}

通过上面的代码,我只能计算圆值,如果我计算值10.60 * 10 = 106,(应该显示该值)。但是我得到了100分。

如何计算点值?

4 个答案:

答案 0 :(得分:1)

  

如果我计算值10.60 * 10 = 106,(该值应为   显示)。但我得到100

因为当你执行parseInt时,它会返回一个没有任何小数值的Intger。

改为使用parseFloat,替换

var first_number = parseInt(tr.querySelector('[data-id="qty"]').value);
var second_number = parseInt(tr.querySelector('[data-id="amtper"]').value);

var first_number = parseFloat(tr.querySelector('[data-id="qty"]').value);
var second_number = parseFloat(tr.querySelector('[data-id="amtper"]').value);

答案 1 :(得分:0)

parseInt()仅解析没有小数值的整数值。

改为使用parseFloat()

var first_number = parseFloat(tr.querySelector('[data-id="qty"]').value);
var second_number = parseFloat(tr.querySelector('[data-id="amtper"]').value);

答案 2 :(得分:0)

parseInt将在乘法之前将10.60转换为10。您需要使用parseFloat。如果您希望整数或小数点后面带有固定数字的数字,可以使用precision参数进行设置。

function add_number(inp, precision) {
    precision = typeof precision !== "number"? 0: precision;
    var tr = inp.parentNode.parentNode;
    var first_number = parseFloat(tr.querySelector('[data-id="qty"]').value);
    var second_number = parseFloat(tr.querySelector('[data-id="amtper"]').value);

    var result = (first_number * second_number).toFixed(precision);
    tr.querySelector('[data-id="total"]').value = result ? result : '';
}

答案 3 :(得分:0)

使用parseFloat?见:



function add_number(inp) {
    var tr = inp.parentNode.parentNode;
    var first_number = parseFloat(tr.querySelector('[data-id="qty"]').value);
    var second_number = parseFloat(tr.querySelector('[data-id="amtper"]').value);

    var result = first_number * second_number;
    tr.querySelector('[data-id="total"]').value = result ? result : '';
}

add_number(document.getElementById("inp"));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  QTY: <input data-id="qty" value="100"><br>
  AMTPER: <input data-id="amtper" value="1.06">
  <div>
    <div id="inp"></div>
  </div>
  <hr>
  Total, filled by JS:
  <input data-id="total">
</div>
&#13;
&#13;
&#13;