使用 parseFloat 计算丢失小数位

Calculation with parseFloat looses decimal places

我需要计算一些数字。到目前为止它工作正常,但它失去了原来的小数位(这里: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="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

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

data-price="3560.50"

这是更新后的 fiddle?:https://jsfiddle.net/ub4j7d7z/3/