Js 对小数的处理(科学计数法 , 显示精度)
2017-08-03 16:42
435 查看
一。 对数字进行格式化输出,是非常有意义的一件事情,例如许多时候,我们希望一个数字能够输出为指定格式的字符串,拿25.9878来说,我们可能会希望它能保留两位小数来说出,即结果为25.99,或者对于0.345678,希望能够按百分号输出,并保留小数点后两位,即结果为34.57%,又例如我们希望将数字56456456按照科学计数法来显示,并保留小数点后两位,即结果为5.65e+7,类似例子当然还有很多。
那么在Javascript标准之中,是否提供了对这些格式化输出的支持呢,可以说Javascript也提供了部分支持,但是提供的并部完善,具体你可以看一下Number对象的使用,里面提供了对数字的一些格式化输出,几个函数如下:
toExponential([fractionDigits]) :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数。
toFixed([fractionDigits]) :将数字按指定的小数点位数返回,其中的fractionDigits值小数点后保留的位数。
toPrecision([precision]) :将数字按指定的精度返回(这个精度不是指小数点后几位),其中precision是指定的精度值。
如果你不会使用上面的函数,我简单给你举个例子:
var num=56.45678;
var rs1=num.toExponential(2);//rs1的值为5.65e+1
var rs2=num.toFixed(2);//rs的值为56.45
var rs3=num.toPrecision(2);//rs的值为56
虽然说Number对象提供的这些方法能够解决不少的数字转化问题,但是对于许多情况还是不好满足的,例如对百分号的支持等等。
为了解决这个问题,并提供更为强大和灵活的数字格式化要求,JsJava专门提供了的Javascript自定义类来进行支持,你可以下载jsjava-1.0.js,引用其中的src/jsjava/text/NumberFormat.js或者直接引用jslib/jsjava-1.0.js,举例如下:
<script src="js/jsjava/text/NumberFormat.js"></script>
<script src="js/jsjava/lang/StringBuffer.js"></script>
<script src="js/jsjava/lang/IllegalArgumentException.js"></script>
<script>
var nf=new NumberFormat();
nf.applyPattern("000.000%");
var res=nf.format(-0.893566);
document.write(res+"<br>");
nf.applyPattern("0000.00");
var res=nf.format(-53.385967);
document.write(res+"<br>");
nf.applyPattern("0000.000E00");
var res=nf.format(53.385967);
document.write(res+"<br>");
</script>
显示结果为:
-89.357%
-53.39
5338.597e-2
JsJava是非常强大的,它是目前世界上最为全面的Javascript类库体系,使用JsJava,将更使你的界面脚本逻辑开发变得更加简单。
二、将科学计数法转化成数字格式的字符串:
DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
df.setMaximumFractionDigits(2);
System.out.println(df.format(12.3456789));
之后如果需要对数字做处理 ,只需要将String类型转化成数据类型就好了。
那么在Javascript标准之中,是否提供了对这些格式化输出的支持呢,可以说Javascript也提供了部分支持,但是提供的并部完善,具体你可以看一下Number对象的使用,里面提供了对数字的一些格式化输出,几个函数如下:
toExponential([fractionDigits]) :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数。
toFixed([fractionDigits]) :将数字按指定的小数点位数返回,其中的fractionDigits值小数点后保留的位数。
toPrecision([precision]) :将数字按指定的精度返回(这个精度不是指小数点后几位),其中precision是指定的精度值。
如果你不会使用上面的函数,我简单给你举个例子:
var num=56.45678;
var rs1=num.toExponential(2);//rs1的值为5.65e+1
var rs2=num.toFixed(2);//rs的值为56.45
var rs3=num.toPrecision(2);//rs的值为56
虽然说Number对象提供的这些方法能够解决不少的数字转化问题,但是对于许多情况还是不好满足的,例如对百分号的支持等等。
为了解决这个问题,并提供更为强大和灵活的数字格式化要求,JsJava专门提供了的Javascript自定义类来进行支持,你可以下载jsjava-1.0.js,引用其中的src/jsjava/text/NumberFormat.js或者直接引用jslib/jsjava-1.0.js,举例如下:
<script src="js/jsjava/text/NumberFormat.js"></script>
<script src="js/jsjava/lang/StringBuffer.js"></script>
<script src="js/jsjava/lang/IllegalArgumentException.js"></script>
<script>
var nf=new NumberFormat();
nf.applyPattern("000.000%");
var res=nf.format(-0.893566);
document.write(res+"<br>");
nf.applyPattern("0000.00");
var res=nf.format(-53.385967);
document.write(res+"<br>");
nf.applyPattern("0000.000E00");
var res=nf.format(53.385967);
document.write(res+"<br>");
</script>
显示结果为:
-89.357%
-53.39
5338.597e-2
JsJava是非常强大的,它是目前世界上最为全面的Javascript类库体系,使用JsJava,将更使你的界面脚本逻辑开发变得更加简单。
二、将科学计数法转化成数字格式的字符串:
DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
df.setMaximumFractionDigits(2);
System.out.println(df.format(12.3456789));
之后如果需要对数字做处理 ,只需要将String类型转化成数据类型就好了。
相关文章推荐
- Js 对小数的处理(科学计数法 , 显示精度)
- Js 对小数的处理(科学计数法 , 显示精度)
- js 对小数加法精度处理
- js 对小数加法精度处理示例说明
- js 对小数加法精度处理示例说明
- 将数字转化成一定精度的小数(JS函数)
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- 在网页上显示真正的缩略图,非js处理的缩放
- pandas 小数位数 精度的处理
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法
- JS--处理浮点数运算精度失真
- Js计算,精度丢失处理
- Jquery的validate,清除form方法,显示密插件,正则特殊字符处理,js的call用法,ajax,h5支持情况,elclipse tomcate去掉项目名,js 的原型
- JS实现文本框只能输入两位小数的数字,不显示输入的其它字符
- js处理数字保留2位小数,强制保留2位小数不够补上.00
- JS之小数精度问题
- BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
- JS中的数值显示与处理
- java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定
- js中小数运算精度丢失问题