angular 字符串转换成数字_微信小程序--JavaScript实现指定数字的精度输出

865a7c1c526277d99b6d8dc85cf25ba9.png

问题描述

小程序js中某个数字是3.1415926,但是我们需要用于计算的只是3.14,那么应该实现呢?

toPrecision()

1.定义

  • 在对象的值超出指定位数时将其转换为指数计数法。

2.语法

  • number.toPrecision(x)

3.参数

  • x:必需,规定必须被转换为指数计数法的最小位数。该参数是 1 ~ 21 之间(且包括 1 和 21)的值。有效实现允许有选择地支持更大或更小的 num。如果省略了该参数,则调用方法toString(),而不是把数字转换成十进制的值。

4.返回值

  • 类型:String, 指定精度的数字格式

5.实例
测试代码

var num = new Number(13.3714);
    var numx=new Number(13.3114)
    var a = num.toPrecision();
    var b = num.toPrecision(2);
    var c = num.toPrecision(3);
    var cc=numx.toPrecision(3);
    var d = num.toPrecision(10);
    console.log("num="+num)
    console.log("a="+a)
    console.log("b="+b)
    console.log("c="+c)
    console.log("cc="+cc)
    console.log("d="+d)

结果

df8f6e67bdeb23df46df7432ad365e9e.png

6.小结
number.toPrecision(x)就是将number转换为含有x位数的string符号,采用了四舍五入。比如示例中的13.3714和13.3114只保留三位数字时,需要用到四舍五入。如果x大于了number本来的位数,则填充0,使得string为x位。

toFixed()

1.定义和用法

  • 把 Number 四舍五入为指定小数位数的数字。

2.语法

  • NumberObject.toFixed(num)

3.参数

  • num: 必需,规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0代替。

4.返回值

  • 返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。

5.抛出

  • 当 num 太小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。当调用该方法的对象不是 Number 时抛出 TypeError 异常。

6.示例
测试代码

var num = new Number(13.3714);
    var numx=new Number(13.3114)
    var a = num.toFixed();//默认保留0位小数 注意是小数 13
    var b = num.toFixed(2);//保留2位小数 13.37
    var c = num.toFixed(3);//保留3位小数 13.371
    var cc = numx.toFixed(3);//保留3位小数 13.311
    var d = num.toFixed(10);//保留10位小数 不足用0填充
    console.log("num="+num)
    console.log("a="+a)
    console.log("b="+b)
    console.log("c="+c)
    console.log("cc="+cc)
    console.log("d="+d)

结果

1da801bbbcb10f1300f1a647d05e1385.png

7.小结
NumberObject.toFixed(num)也是满足四舍五入的语法的,参数num的意思是保留几位小数。返回值类型是string。

总结

toPrecision()和toFixed()都是将number类型的数字截取为某一精度的函数,而且返回值都是string【可以查看JavaScript官方文档验证或开发工具测试】,而且都具有四舍五入的语法。区别就是toPrecision()是一共保留几位数字,而toFixed()却是保留几位小数点后面的数字。当然,位数不足时都是用0填充(^ o ^)/~

f83dd23bab2d7745b2755d97f14e7de4.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值