对于一些小数点后有多位的浮点数,我们可能只需要保留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基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。