1
십진수를 18 자리까지 제어 할 수 있도록 금액을 계산하는이 코드에 toFixed
메서드를 추가하면 잘못된 계산이 수행되지 않습니다.JavaScript에서 십진수 출력 제어
현재 10 만 51
를 반환해야하지만,이 값을 설정하기 전에이 51.00000000000004
< script type = "text/javascript" >
$(document).ready(function() {
var qty = $("#qty");
qty.keyup(function() {
var total = isNaN(parseInt(qty.val() * $("#price").val())) ? 0 : (qty.val() * $("#price").val())
$("#total").val(total);
});
});
</script>
고마워, 18 개가 필요해 18 개로 바꿨지 만 정확한 값은 여전히 다르고 나온다. 지금 100,000이 51.000000000000007105를 반환하고 있습니다. 18 개 장소를 유지하는 방법이 있습니까? 정확한 숫자가 반환되는지 확인하십시오. –
@DavidClabaugh 당신은 부동 소수점이 근사치이며 JavaScript 숫자가 소수 자릿수만큼 정확하지 않다는 사실에 착수하고 있습니다. 참조 : [부동 소수점 연산이 깨졌습니까?] (https://stackoverflow.com/questions/588004/is-floating-point-math-broken) –