关于javascript:数字字符串保留两位小数

2次阅读

共计 796 个字符,预计需要花费 2 分钟才能阅读完成。

function toDecimal2(strData){
  // 对不非法的字符串进行校验
  if(!strData){return ""}
  if(!parseFloat(strData)){return ""}

  let ret = parseFloat(strData)
  ret  = Math.round(ret*100)/100 // 四舍五入, 保留 2 位小数,若是 1000,则是保留 3 位小数

  // 对传过来的若是整型数字字符串的解决
  if(ret.toString().indexOf(".") < 0){ret = ret.toFixed(2)
  }
  return ret.toString()}

console.log("2.561=", toDecimal2("2.561"))  //2.561= 2.56
console.log("2.567=", toDecimal2("2.567"))  //2.567= 2.57
console.log("2.0=", toDecimal2("2.0"))      //2.0= 2.00
console.log("2.00=", toDecimal2("2.00"))   //2.00= 2.00
console.log("2=", toDecimal2("2"))          // 2= 2.00
console.log("100=", toDecimal2("100"))      //100= 100.00
console.log("=", toDecimal2(""))            //= 
console.log("sdf=", toDecimal2("sdf"))        //sdf= 

总结:这里次要应用了两个技术点

  1. 利用 Math.round(ret*100)/100 对合乎小数条件的进行保留一步到位
  2. 利用 float.toFixed(2) 对不合乎小数条件的,如 ”2″, 先 parseFloat,把它转化成了 float,但显示时,缺省了小数点前面的 0,再利用 toFixed(2), 明确显示进去 2.00
正文完
 0