使用parseFloat计算会丢失小数位

问题描述 投票:1回答:2

我需要计算一些数字。它到目前为止工作正常,但它失去原来的小数位(这里:50美分)。知道为什么会这样吗?

$("select").on("change", function () {
  var sum1 = parseFloat($(this).val()) * parseFloat($(this).data("price"));
  var sum2 = parseFloat($("#orgPrice").data("price"));
  var sum3 = parseFloat(sum1) + parseFloat(sum2);
  $("#total").text(sum3.toFixed(2));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="orgPrice" data-price="100,00"></div>

<select id="subcode_060" class="custom-select custom-select-sm" data-description="UPGRADES" data-subdescription="X to Y" data-price="3560,50">
  <option value="0" selected>0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>

<div id="total">0.00</div>
javascript jquery html parsefloat
2个回答
3
投票

你必须使用.而不是,看到这里发生的唯一变化,来自

data-price="3560,50"

data-price="3560.50"

$("select").on("change", function () {

  var sum1 = parseFloat($(this).val()) * parseFloat($(this).data("price"));
  var sum2 = parseFloat($("#orgPrice").data("price"));
  var sum3 = parseFloat(sum1) + parseFloat(sum2);

  $("#total").text(sum3.toFixed(2));

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="orgPrice" data-price="100,00"></div>
 
 <select id="subcode_060" class="custom-select custom-select-sm" data-description="UPGRADES" data-subdescription="X to Y" data-price="3560.50">
   <option value="0" selected>0</option>
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
</select>

<div id="total">0.00</div>

注意:当然你也想把data-price="100,00"改成data-price="100.00"它只是没有真正影响任何因为它的.00


1
投票

您需要在.中使用,而不是data-price作为小数分隔符。

data-price="3560.50"

这是更新的小提琴?:https://jsfiddle.net/ub4j7d7z/3/

© www.soinside.com 2019 - 2024. All rights reserved.