如果小于4小数,如何添加零,如果更多则删除?

时间:2016-07-06 18:35:16

标签: javascript

有人可以告诉我如何编写一个在小数点后加0的函数,如果小数点后出现少于4位数,直到4位小数点长,小数点后最右边的数字超过4位。是字符串。不想要任何四舍五入。仅供显示,不计算。例如:

719.843797应删除最后两位数字为719.8437
21.947应该加一个0为21.9470
1.3456没有变化

2 个答案:

答案 0 :(得分:0)

使用toFixed或任何类型的乘法可能会导致舍入问题。将数字作为字符串处理可以避免它们。下面的函数传递了所有给定的用例。但这有点像黑客。虽然我不确定是否有更好的方法来满足您的要求。



function truncate4(x) {
   var parts = x.toString().split('.'); // this is not i18n proof :(
   var integral = parts[0];
   var decimal = parts[1] || ''; // might be integer
   return integral + '.' + (decimal + '0000').substr(0, 4) 
}

console.log(truncate4(719.843797));
console.log(truncate4(21.947));
console.log(truncate4(1.3456));




答案 1 :(得分:0)

此功能应匹配

function arrondir(num){
  var str = num.toString();
  var index = str.indexOf(".");
  var decimal = str.substr(index+1);
  var integer = str.substr(0, index);
  if (decimal.length < 4)
    for (var i = 0; i < 5 - decimal.length; i++)
      decimal = decimal.concat("0");
  else decimal = decimal.substr(0,4);
  return integer.concat(".").concat(decimal);
}

console.log(arrondir(719.84));          // 719.8400
console.log(arrondir(719.84657963657)); // 719.8465