保留两位小数
保留两位小数
问题:后台返的数据就是保留两位小数的数据,如4.00,5.25 ,展示在前端会是4,5.25,为了解决这个问题,通常会加parseInt('5.25').toFixed(2)方法,来保留两位小数,但是此方法有时候达不到预期。
- 因为后台返的是字符串,不是数字toFixed() 方法可把 Number四舍五入为指定小数位数的数字。
- 将字符串转化为数字,常用的有parseInt() parseFloat()等
- 用parseInt() 转化为数字时会发现4.00,5.25会转化为4,5 然后再用toFixed()方法来保留两位小数时,就会变成4.00和5.00显然也是不符合要求的。
- 遇到这种问题常用以下方式
- parseFloat('5.25').toFixed(2)
- Number('5.25').toFixed(2)
补充:
将字符串转化为数字
使用parseInt()
parseInt()解析一个字符串并返回一个整数。允许空格。仅返回第一个数字。
parseInt可以识别各种整数格式,如:8进制,10进制,16进制,所以可以接收第二个参数表示要转换为多少进制
parseInt('2.23') //2
var num = parseInt('0xAF', 16)
//175
使用parseFloat()
parseFloat只能解析10进制值,所以没有第二个参数
parseFloat('2.23') //2.32
[1,2,3].map(parseFloat)
//[1, 2, 3]
parseInt() 把一个字符串转换为一个整数
parseFloat() 把一个字符串转换为一个浮点数
使用 Number()
Number('10') //10
Number('10.33') //10.33
使用一元运算符 (+)
let x = '5.25'
console.log(+x) //5.25
乘以数字 *1
let x = '5'
console.log(x*1) //5
let y = '5.25'
console.log(y*1) //5.25
双波浪号 (~~) 运算符
let x = '5'
console.log(~~x) //5
let y = '5.25'
console.log(~~y) //5.25