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