js中控制小数点的显示位数的技术整理
来源:互联网 发布:php单例模式是什么 编辑:程序博客网 时间:2024/06/05 19:46
js中控制小数点的显示位数的技术整理(文摘整理和个人经验)
js中自带方法控制小数点的显示位数
< script language = " JScript " >
Number.prototype.toFixed = function(num)
{
// 重新构造toFixed方法,IE5.0+
with(Math) this .NO = round( this .valueOf() * pow( 10 ,num)) / pow( 10 ,num);
return String( / /. / g.exec( this .NO) ? this .NO: this .NO + " . " + String(Math.pow( 10 ,num)).substr( 1,num));
}
alert(( 12.9299 ).toFixed( 2 ));
alert(( 12.9999 ).toFixed( 2 ));
</ script >
控制保留几位有效小数的js函数
//Code CreateBy abandonship 2007.03.12
function FormatAfterDotNumber( ValueString, nAfterDotNum )
{
var ValueString,nAfterDotNum ;
var resultStr,nTen;
ValueString = ""+ValueString+"";
strLen = ValueString.length;
dotPos = ValueString.indexOf(".",0);
if (dotPos == -1)
{
resultStr = ValueString+".";
for (i=0;i<nAfterDotNum ;i++)
{
resultStr = resultStr+"0";
}
return resultStr;
}
else
{
if ((strLen - dotPos - 1) >= nAfterDotNum ){
nAfter = dotPos + nAfterDotNum + 1;
nTen =1;
for(j=0;j<nAfterDotNum ;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(ValueString)*nTen)/nTen;
return resultStr;
}
else{
resultStr = ValueString;
for (i=0;i<(nAfterDotNum - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}
应用时只需要FormatAfterDotNumber( ’数字字符串’, 保留小数位数 );
for example:
<html>
<head>
<SCRIPT LANGUAGE="JAVAscript">
<!--调用上面的函数 -->
</script>
</head>
<body>
<input type="text" name="strTemp">
<input type="button" onclick="alert( FormatAfterDotNumber( document.all. strTemp.value), 保留小数位)" >
</body>
</html>
一个替代js自带的toFixed函数的方法和优点
之前一直在用这个js自带的toFixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。
比如
- var money=0.00542;//0.006;
- alert(Number(money).toFixed(2));
- //0.00
- var money=0.00542;//0.006;
- alert(Number(money).toFixed(2));
- //0.00
可以看出上面的结果是错误的,下面的方法通过巧妙的使用Math.round函数,完全可以解决数值很小时的精度问题。
- var money=0.00542;//0.006;
- alert(Number(money).toFixed(2));
- function round2(number,fractionDigits){
- with(Math){
- return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);
- }
- }
- alert(round2(money,2));//0.01
- var money=0.00542;//0.006;
- alert(Number(money).toFixed(2));
- function round2(number,fractionDigits){
- with(Math){
- return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);
- }
- }
- alert(round2(money,2));//0.01
round 方法
返回与给出的数值表达式最接近的整数。
Math.round(number)
必选项 number 参数是要舍入到最接近整数的值。
说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。
js保留小数位数的某人总结
一、问题的产生:
自己在编码时,在javascript中遇到了3.21*3=9.629999999999999的现象
二、百度一下
得到如下信息:
用Javascript取float型小数点后两位,例22.127456取成22.13,如何做?
1. 最笨的办法....... [我就怎么干的.........]
function get()
{
var s = 22.127456 + "";
var str = s.substring(0,s.indexOf(".") + 3);
alert(str);
}
2. 正则表达式效果不错
<script type="text/javascript">
onload = function(){
var a = "23.456322";
var aNew;
var re = /([0-9]+/.[0-9]{2})[0-9]*/;
aNew = a.replace(re,"$1");
alert(aNew);
}
</script>
3. 他就比较聪明了.....
<script>
var num=22.127456;
alert( Math.round(num*100)/100);
</script>
4.会用新鲜东西的朋友....... 但是需要 IE5.5+才支持。
<script>
var num=22.127456;
alert( num.toFixed(2));
</script>
三、总结后,自己写了个javascript多位数四舍五入的通用方法
//num表示要四舍五入的数,v表示要保留的小数位数。
function decimal(num,v)
{
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}
Math对象
属性
LN10 (10的自然对数)
PI (3.1415926...)
SQRT1_2 (1/2的平方根)
方法
abs(x) 返回x的绝对值
acos(x) 返回x的arc cosine值
asin(x) 返回x的arc sin值
atan(x) 返回x的arc tangent值
ceil(x) 返回大于等于x的最小整数
cos(x) 返回x的cosine值
exp(x) 返回e的x次方
floor(x) 返回小于等于x的最大整数
log(x) 返回x的
max(x,y) 返回x,y中的大值
min(x,y) 返回x,y中的小值
pow(x,y) 返回x的y次方
round(x) 舍入到最近整数,(小于或等于0.5小数舍去)
sin(x) 返回x的sin值
sqrt(x) 返回x的平方根
tan(x) 返回x的tangent值
- js中控制小数点的显示位数的技术整理
- js中控制小数点的显示位数的技术整理
- js自带的toFixed函数控制小数点的显示位数,来进行四舍五入的操作
- 控制小数点后的位数
- js判断小数点的位数
- MATLAB中控制输出格式中小数点后的位数
- JAVA中控制double类型小数点后位数的方法
- ASP.NET 中 GridView 数值列 小数点位数 的控制
- java编程中控制小数点后的位数
- JAVA中控制double类型小数点后位数的方法
- Java中控制double类型小数点后位数的方法
- java编程中怎么控制小数点后的位数?
- 控制DOUBLE,DECIMAL小数点的位数
- C++小数点及位数的控制
- java控制double输出的小数点位数
- Java控制double输出的小数点位数
- java控制double输出的小数点位数
- 关于C#中小数点都位数的控制(小数点后一位)
- DBA 经典面试题(2)
- linux环境下java读取sh脚本并执行
- 空间几何变换知识点——摘自《机器视觉研究与发展》赵彭
- linux 0.11 内核学习 -- head.s
- linux shell实现随机数多种方法(date,random,uuid)
- js中控制小数点的显示位数的技术整理
- 后台拿webshell的常用方法总结
- XML约束
- DBA 经典面试题(3)
- 保护模式下三个重要的系统表——GDT、LDT和IDT
- 用VB6.0实现将窗体最小化到系统托盘区 两个方法均测试部分有效或完全有效
- 随机排序
- 利用Bochs调试linux的启动过
- Excel 2010将不相邻区域打印在同一页