[小例子]计算商品价格
2015-05-16 23:10
369 查看
需要注意是小数相加的问题。这是JavaScript浮点运算的一个bug。
如果在知道小数位个数的前提下,可以考虑通过将浮点数放大倍数到整型(最后再除以相应倍数),再进行运算操作,这样就能得到正确的结果了
如果在知道小数位个数的前提下,可以考虑通过将浮点数放大倍数到整型(最后再除以相应倍数),再进行运算操作,这样就能得到正确的结果了
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> input {margin: 0 10px} em {margin:0 10px;} </style> <script type="text/javascript"> // 如果在知道小数位个数的前提下,可以考虑通过将浮点数放大倍数到整型(最后再除以相应倍数) // ,再进行运算操作,这样就能得到正确的结果了 window.onload=function(){ var oUl=document.getElementById('list'); var aLi=oUl.getElementsByTagName('li'); var allNum=document.getElementById('goods'); var allSum=document.getElementById('sum'); console.log(Number(0)) //0 for (var i = 0; i < aLi.length; i++) { fn1(aLi[i]) }; function fn1(obj){ var aInp=obj.getElementsByTagName('input'); var oSpan=obj.getElementsByTagName('span')[0]; var oEm=obj.getElementsByTagName('em')[0]; var price=parseFloat(oEm.innerHTML)*100; var num=parseInt(oSpan.innerHTML); aInp[0].onclick=function(){ if (num==0) { alert('请选择商品数量,目前为0件'); return; }else{ num--; oSpan.innerHTML=num+'件'; aInp[2].value=(num*price)/100+'元' }; getNum() } aInp[1].onclick=function(){ num++; oSpan.innerHTML=num+'件'; aInp[2].value=(num*price)/100+'元'; getNum() } } function getNum(){ var str=0; var str2=0; for (var i = 0; i < aLi.length; i++) { var goods=aLi[i].getElementsByTagName('span')[0]; var money=aLi[i].getElementsByTagName('input')[2]; str += parseInt(goods.innerHTML); str2+=parseFloat(money.value); }; //console.log(str) allNum.value=str+'件'; allSum.value=str2.toFixed(2)+'元'; } } </script> </head> <body> <ul id="list"> <li> 辣椒炒肉: <input type="button" value="-"> <span>0件</span> <input type="button" value="+"> <span>单价</span> <em>6元</em> 结果: <input type="text" value="0元"> </li> <li> 土豆烧肉: <input type="button" value="-"> <span>0件</span> <input type="button" value="+"> <span>单价</span> <em>12.3元</em> 结果: <input type="text" value="0元"> </li> <li> 辣椒炒蛋: <input type="button" value="-"> <span>0件</span> <input type="button" value="+"> <span>单价</span> <em>3元</em> 结果: <input type="text" value="0元"> </li> <li> 辣椒炒肉: <input type="button" value="-"> <span>0件</span> <input type="button" value="+"> <span>单价</span> <em>9元</em> 结果: <input type="text" value="0元"> </li> </ul> <label for="goods">商品总计: <input type="text" id="goods"> </label> <label for="sum">价格总计: <input type="text" id="sum"> </label> </body> </html>
相关文章推荐
- C语言(商品价格计算)
- Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)
- 函数传参之商品价格计算—JS学习笔记2015-6-6(第50天)
- ES分组聚合:计算每个tag下的商品数量且某个filed包含指定关键字,分组,平均,每个tags下的平均价格,排序,指定范围区间
- c#入门:简单的数组,编写一个程序,接收每件商品的价格,计算应付的总金额并输出
- Js基础--函数传参小实例(商品价格计算)
- 购物车商品价格计算
- Angularjs购物车计算价格例子
- Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)
- 例题:超市买东西的程序。输入商品信息,计算价格,价格满多少元打折。这道题用到结构体,集合,for循环,if else语句
- Android-----购物车(包含侧滑删除,商品筛选,商品增加和减少,价格计算,店铺分类等)
- 淘宝京东购物车价格计算,商品店铺联动js
- Android 购物车编辑全选,取消全选 + 计算商品价格
- JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
- 计算商品税额和商品价格保留小数的时候的坑
- js购物车选中商品实现计算商品总价格
- [置顶] js中传参的实例 多组图片的指定切换与商品价格的计算
- 商品价格计算
- 页面计算价格例子