首页
Javascript
Html
Css
Node.js
Electron
移动开发
工具类
服务端
浏览器相关
前端收藏
其他
关于

Javascript数字类型小数表示方式的三种方法:toFixed,toExponential,toPrecision

2013年05月30日 发布 阅读(419) 作者:懒炖

javascript提供了三个方法来计算表示小数点的位数:

1、toFixed:把 Number 四舍五入为指定小数位数的数字

语法:number.toFixed(digits),【digits】为保留的小数位数,【digits】必须为0-20的数字,大于20会抛出错误,省略时默认为0。对象number不是数字时也会抛出错误

  1. var t = 100.923456;
  2. alert(t.toFixed());//返回101
  3. alert(t.toFixed(2));//返回100.92
  4. alert(t.toFixed(21));//抛出错误:小数点位数越界[用firefox测试时,发现不受20这个值的限制,大于20也不会报错]

2、toExponential:把数字转换成指数计数方法表示。

语法:number.toExponential(digits),【digits】为保留的小数位数,【digits】必须为0-20的数字

  1. var t = 100.923456;
  2. alert(t.toExponential());//返回1.00923456e+2
  3. alert(t.toExponential(2));//返回1.01e+2
  4. alert(t.toExponential(4));//返回1.0092e+2;
  5. alert(t.toExponential(21));//抛出错误:小数点位数越界

3、toPrecision(digits):根据对象最有意义的形式返回数字的预定形式或指数形式

语法:NumberObject.toPrecision(digits),【digits】范围在1-21之间(上面两种方法是0-20,注意区分)

  1. var t = 100.923457;
  2. alert(t.toPrecision());//返回100.923456
  3. alert(t.toPrecision(2));//返回1.0e+2
  4. alert(t.toPrecision(4));//返回100.9;
  5. alert(t.toPrecision(21));//返回100.923456000000000000(IE),100.923456000000001609(firefox,chrome,opera,safari),为什么后面是1609而不是0补足呢?望高手解答
  6. alert(t.toPrecition(22));//抛出错误
版权声明:本站文章除特别声明外,均采用署名-非商业性使用-禁止演绎 4.0 国际 许可协议,如需转载,请注明出处

评论

  •