您的位置:首页 > Web前端 > JavaScript

JS保留两位、三位小数(带四舍五入)

2015-04-22 11:31 363 查看
js保留2位小数toFixed(xxxx)

vara=9.39393;

alert(a.toFixed(2));

alert(Number.toFixed(9.39393));

返回的是9.39

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

functionchangeTwoDecimal(x)

{

varf_x=parseFloat(x);

if(isNaN(f_x))

{

alert('function:changeTwoDecimal->parametererror');

returnfalse;

}

f_x=Math.round(f_x*100)/100;

returnf_x;

}

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

用法:changeTwoDecimal(3.1415926)返回3.14

changeTwoDecimal(3.1475926)返回3.15

js保留2位小数(强制)

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

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

functionchangeTwoDecimal_f(x)

{

varf_x=parseFloat(x);

if(isNaN(f_x))

{

alert('function:changeTwoDecimal->parametererror');

returnfalse;

}

f_x=Math.round(f_x*100)/100;

vars_x=f_x.toString();

varpos_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';

}

returns_x;

}

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

用法:changeTwoDecimal(3.1415926)返回3.14

changeTwoDecimal(3.1)返回3.10

另:

parseFloat方法

返回由字符串转换得到的浮点数。

parseFloat(numString)


必选项numString参数是包含浮点数的字符串。

说明

parseFloat方法返回与numString中保存的数相等的数字表示。如果numString的前缀不能解释为浮点数,则返回NaN(而不是数字)。

parseFloat("abc")
//
返回
NaN

parseFloat("1.2abc")
//
返回
1.2
。[/code]

可以用isNaN方法检测NaN

示例1:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<headrunat="server">

<title>无标题页</title>

<script>

functionchangetText(){

document.getElementById("txtB").value=document.getElementById("txtA").value;

}

</script>

</head>

<body>

<formid="form1"runat="server">

<div>

<asp:TextBoxID="txtA"runat="server"onblur="changetText()"></asp:TextBox>

<asp:TextBoxID="txtB"runat="server"></asp:TextBox>

</div>

</form>

</body>

</html>

示例2:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<headrunat="server">

<title>无标题页</title>

<script>

    //把数值保存3位有效值

functionchangeThreeDecimal_f(varObj)

{

varx=varObj.value;

varf_x=parseFloat(x);

if(isNaN(f_x))

{

return;

}

f_x=Math.round(f_x*1000)/1000;

vars_x=f_x.toString();

varpos_decimal=s_x.indexOf('.');

if(pos_decimal<0)

{

pos_decimal=s_x.length;

s_x+='.';

}

while(s_x.length<=pos_decimal+3)

{

s_x+='0';

}

varObj.value=s_x;

}

</script>

</head>

<body>

<formid="form1"runat="server">

<div>

<asp:TextBoxID="txtA"runat="server"onblur="changeThreeDecimal_f(this)"></asp:TextBox>

<asp:TextBoxID="txtB"runat="server"></asp:TextBox>

</div>

</form>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: