保留两位小数

发布时间 2023-06-20 11:17:28作者: 张尊娟

保留两位小数

问题:后台返的数据就是保留两位小数的数据,如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

参考文章 https://www.jb51.net/article/261613.htm