计算要在 POS 上给客户的零钱 javascript

Calculate change to be given to customer on POS javascript

任何人都可以帮我解决这个问题,我正在尝试在 POS 上使用此代码来计算给客户的零钱并且它适用于必须的部分。

我遇到的问题是,如果我的订单价格为 9.99 英镑,我输入 10 英镑,而不是将零钱计算为 0.01 英镑,而是计算为 0.009999999999999787

这是我正在使用的代码。

function sum() {
    var og_total = document.getElementById('og_cart_total').value;
    var og_tendered = document.getElementById('og_cash_tendered').value;
    var og_change = (og_tendered - og_total).toFixed(2);
    var og_symbol = '£';
    if (!isNaN(og_change)) {
        document.getElementById('og_change_given').value = og_symbol + og_change;
    }
}
<input type="hidden" id="og_cart_total"  value="19.99" onkeyup="sum();" />

<div class="control-group">
<label class="control-label" for="og_cash_tendered">Tendered:</label>
<div class="controls">
 <input class="cm-autocomplete-off" type="text" name="payment_info[og_cash_tendered]" value="" id="og_cash_tendered" onkeyup="sum();" />
</div>
</div>

<div class="control-group">
<label class="control-label" for="og_change_given">Change:</label>
<div class="controls">
 <input type="text" name="payment_info[og_change_given]" id="og_change_given" value="£-19.99" readonly="readonly" />
</div>
</div>

有这种方法,但它没有应有的希望。如果值得的话,最好的方法是使用长数字库。

function sum() {
            var og_total = document.getElementById('txt1').value;
            var og_tendered = document.getElementById('txt2').value;
            var og_change = (og_tendered - og_total).toFixed(2);
            var og_symbol = "£";
            if (!isNaN(og_change)) {
                document.getElementById('og_change_text').value = og_symbol + og_change;
            }
        }
<input type="text" id="txt1"  value="9.99" readonly="readonly" onkeyup="sum();" />
<input type="text" id="txt2"  onkeyup="sum();" />
<input type="text" readonly="readonly" id="og_change_text" />