有人可以告诉我如何编写一个在小数点后加0的函数,如果小数点后出现少于4位数,直到4位小数点长,小数点后最右边的数字超过4位。是字符串。不想要任何四舍五入。仅供显示,不计算。例如:
719.843797应删除最后两位数字为719.8437
21.947应该加一个0为21.9470
1.3456没有变化
答案 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