javascript自动计算金额(计算结果只显示小数点后的两位)

JavaScript012

javascript自动计算金额(计算结果只显示小数点后的两位),第1张

JS保留两位小数

对于一些小数点后有多位的浮点数,我们可能只需要保留2位,但js没有提供这样直接的函数,所以我们得自己写函数实现这个功能,代码如下:

function changeTwoDecimal(x)

{

var f_x = parseFloat(x)

if (isNaN(f_x))

{

alert('function:changeTwoDecimal->parameter error')

return false

}

var f_x = Math.round(x*100)/100

return f_x

}

功能:将浮点数四舍五入,取小数点后2位

用法:changeTwoDecimal(3.1415926) 返回 3.14

changeTwoDecimal(3.1475926) 返回 3.15

js保留2位小数(强制)

对于小数点位数大于2位的,用上面的函数没问题,但是如果小于2位的,比如:

changeTwoDecimal(3.1),将返回 3.1,如果你一定需要3.10这样的格式,那么需要下面的这个函数:

function changeTwoDecimal_f(x)

{

var f_x = parseFloat(x)

if (isNaN(f_x))

{

alert('function:changeTwoDecimal->parameter error')

return false

}

var f_x = Math.round(x*100)/100

var s_x = f_x.toString()

var pos_decimal = s_x.indexOf('.')

if (pos_decimal <0)

{

pos_decimal = s_x.length

s_x += '.'

}

while (s_x.length <= pos_decimal + 2)

{

s_x += '0'

}

return s_x

}

功能:将浮点数四舍五入,取小数点后2位,如果不足2位则补0,这个函数返回的是字符串的格式

用法:changeTwoDecimal(3.1415926) 返回 3.14

changeTwoDecimal(3.1) 返回 3.10

http://apps.hi.baidu.com/share/detail/51532148

我把你那个改成表格的了~这样比较好实现~代码如下:

<table width="600" border="1" align="center" style="text-align:center">

  <tr>

    <td width="102"><input type="checkbox" id="all"/>全选</td>

    <td width="203">商品</td>

    <td width="119">单价</td>

    <td width="148">数量</td>

  </tr>

  <tr>

    <td><input type="checkbox" id="qianbi"/></td>

    <td>铅笔</td>

    <td>1.5元/支</td>

    <td><input type="text" id="qianbi_t" value="1" /></td>

  </tr>

  <tr>

    <td><input type="checkbox" id="yuanzhu" value="" /></td>

    <td>圆珠笔</td>

    <td>2.5元/支</td>

    <td><input type="text" id="yuanzhu_t" value="1" /></td>

  </tr>

  <tr>

    <td><input type="checkbox" id="gangbi" value="" /></td>

    <td>钢笔</td>

    <td>3元/支</td>

    <td><input type="text" id="gangbi_t" value="1" /></td>

  </tr>

  <tr>

    <td colspan="4">金额合计:<span id="m" style="color:#F00"></span>元&nbsp&nbsp&nbsp&nbsp<button>提交订单</button></td>

  </tr>

</table>

<script type="text/javascript">

var all=document.getElementById("all")

var qianbi=document.getElementById("qianbi")

var yuanzhubi=document.getElementById("yuanzhu")

var gangbi=document.getElementById("gangbi")

var qb_m=0,yzb_m=0,gb_m=0

all.onclick=function(){

if(all.checked){

qianbi.checked=true

yuanzhubi.checked=true

gangbi.checked=true

}

else{

qianbi.checked=false

yuanzhubi.checked=false

gangbi.checked=false

}

sub()

}

qianbi.onclick=function(){sub()}

yuanzhubi.onclick=function(){sub()}

gangbi.onclick=function(){sub()}

document.getElementById("qianbi_t").addEventListener("change",function(e){

sub()

})

document.getElementById("yuanzhu_t").addEventListener("change",function(e){

sub()

})

document.getElementById("gangbi_t").addEventListener("change",function(e){

sub()

})

function sub(){

if(qianbi.checked){

qb_m=document.getElementById("qianbi_t").value*1.5

}

else{

qb_m=0

all.checked=false

}

if(yuanzhubi.checked){

yzb_m=document.getElementById("yuanzhu_t").value*2.5

}

else{

yzb_m=0

all.checked=false

}

if(gangbi.checked){

gb_m=document.getElementById("gangbi_t").value*3

}

else{

gb_m=0

all.checked=false

}

var sum=qb_m+yzb_m+gb_m

document.getElementById("m").innerHTML=sum

}

</script>

复制到网页的body中去就行了~试试看~不懂得再来问我~

转为计算机能识别的数。需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂),这是大部分编程语言处理精度差异的通用方法。比如计算0.33和5.2的和,则需要写成(0.33*100+5.2*100)/100。JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。