最近在开发外汇业务的时候,遇到页面上汇率的显示小数点保留不一致的问题。业务统一规定保留四位小数。不足四位自动补0。现将实现方法整理如下:
(1).在小数点位数不够的情况下。
首先在中定义了一个格式化方法formatNumber():
/*
将字符串格式化到指定的小数点位数
*/
= function(nAfterDot) //nAfterDot小数位数
{
var strVal, resultStr,nTen;
if(=="" || =="NaN"){
= "0";
}
strVal = parseFloat(+"");
strVal = strVal+"";
strLen = ;
dotPos = (".",0);
if (dotPos == -1){
resultStr = strVal+".";
for (i=0;i<nAfterDot;i++){
resultStr = resultStr+"0";
}
return resultStr;
}
else{
if ((strLen - dotPos - 1) >= nAfterDot){
nAfter = dotPos + nAfterDot + 1;
nTen =1;
for(j=0;j<nAfterDot;j++){
nTen = nTen*10;
}
resultStr = (parseFloat(strVal)*nTen)/nTen;
return resultStr;
}
else{
resultStr = strVal;
for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}
在具体的页面上,首先获取到汇率的字符串
var remitBidRate=;//汇率
var remitBidRate=remitBidRate +"";//如果汇率不是字符串,则要将其变为字符串
var remitBid = remitBidRate.substring(0,remitBidRate.indexOf(".")+5);
此时的remitBid已经是截取后的数值了,下面是的方法是保证如果不足四位则补0的方法。
调用上面 中的方法,在项目中,我们是把所有的js都引入到了top池中,所以只需通过top去new一个string就可以了。
其他人若想使用,可根据自己项目的架构接口去灵活创建。
text_exRate= new (remitBid).formatNumber(4);
此时的text_exRate就是最终得到的结果数值了。
(2)截取的位数完全足够。如获取的是四位小数,需求要截取两位,可使用以下方法:
<script>
var num =35.45678;
alert((2));
</script>
toFixed()的参数控制要截取的位数。
两种方法可按具体需要使用,谢谢参阅。