0

我正在为一家酒类商店开发应用程序。它必须以OB(期初余额)SB(库存余额)和SL(已售瓶数)作为输入计算当天完成的总业务量,并计算TL(总瓶数)RS(卢比/价格)和CB(收盘价)平衡)。

我成功地做到了,并使用 HTML5 本地存储存储了每天的条目。

这是代码。

  1. Javascript:

            function calTotal(idopeningBal, idStockBal, idTotal){
                var openingBal = parseFloat(idopeningBal.value, 10);
                //if(isNaN(openingBal)) openingBal = parseFloat(0, 10);
                var stockBal = parseFloat(idStockBal.value, 10);
                //if(isNan(stockBal)) stockBal = parseFloat(0,10);
                var total = openingBal + stockBal
                idTotal.value = parseFloat(total, 10);
            }
    
            function calRate(idTotal, idSold, idRupees, idClosingBal, idTotalAmount, price){
    
                /* Calculate overall price */
                var priceOfCurrent = parseFloat(price, 10);     
                var numOfSold = parseFloat(idSold.value, 10);
                if(isNaN(numOfSold)) numOfSold = parseFloat(0, 10);
                var totalPrice = priceOfCurrent * numOfSold;
                /* End calculating total */
    
                idRupees.value = parseFloat(totalPrice, 10);
    
                idClosingBal.value = parseFloat(idTotal.value - idSold.value, 10);
    
                idTotalAmount.innerHTML = parseFloat(totalPrice, 10) + " Rs.";  
            }
    
        </script>
    

    此处的 HTML :

    <tr>
      <td class = "data">FOSTERS BEER 750</td>
      <td class="data"><input type="text" class="numHolder" id="ocb750ob"></td>
      <td class="data"><input type="text" class="numHolder" id="ocb750sb"></td>
      <td class="data"><input type="text" class="numHolder" id="ocb750tl" onclick="calTotal(ocb750ob, ocb750sb, ocb750tl)"></td>
      <td class="data"><input type="text" class="numHolder" id="ocb750sl"></td>
      <td class="data"><input type="text" class="numHolder" id="ocb750rs"></td>
      <td class="data"><input type="text" class="numHolder" id="ocb750cb"
    

    onclick="calRate(ocb750tl, ocb750sl, ocb750rs, ocb750cb, total1, 180)">

同样,大约有 500 个表行。

现在整个应用程序工作正常。在移交之前,我有什么需要担心或寻找的吗?我主要担心与金钱有关的计算

4

1 回答 1

1

在处理金钱时我会谨慎使用浮点数。为防止舍入错误,您可以通过乘以 100 将所有内容转换为整数(如果 ,00 是您想要的小数位数),然后使用整数进行计算和存储。

当您需要将其呈现给用户时,将其转换回浮点数。

编辑
例如,请参阅有关这些问题的问题:浮点数学是否损坏?

于 2013-05-30T11:45:45.037 回答