我有一个号码var x = 2.305185185185195;
x = x.toFixed(5);
x = 2.30519
但我需要这样做而不进行四舍五入,即2.30518
我读了一些带有两个小数位的线程但找不到五位小数。
任何帮助都将不胜感激。
答案 0 :(得分:4)
您可以使用适当的因子并将其置于最后并返回除法的结果。
基本上这个解决方案将点向左移动10 ^ d因子并得到一个整数,并将该值除以前因子以得到正确的数字。
function getFlooredFixed(v, d) {
return (Math.floor(v * Math.pow(10, d)) / Math.pow(10, d)).toFixed(d);
}
var x = 2.305185185185195;
document.write(getFlooredFixed(x, 5));
答案 1 :(得分:2)
dependencies {
....
compile 'com.facebook.shimmer:shimmer:0.1.0'
}
答案 2 :(得分:1)
Math.trunc()函数通过以下方式返回数字的整数部分: 删除任何小数位数
因此,您可以将数字乘以10 ^ n,其中n是所需的精度数,使用Math.trunc()
截断小数部分,除以相同的数字(10 ^ n),然后应用toFixed()
对其进行格式化(例如,以2.30而不是2.3的形式)
var x = 2.305185185185195;
console.log((Math.trunc(x*100000)/100000).toFixed(5));
答案 3 :(得分:0)
如果小数是 5,我已经通过添加少量,然后像往常一样四舍五入来整理它:
function(value, decimals) {
var decimals = decimals || 2;
if( isNaN(value) ){ return 0; }
var decimalPart = value.toString().trim().split('.').pop(),
extra = decimalPart.substr(decimals, decimalPart.length - decimals);
if( extra == '5' &&
decimalPart.length > decimals
){
value = parseFloat(value) + (1 / ( Math.pow(10, decimals + 5) ) );
}
return Number( parseFloat( value ).toFixed( decimals ) );
}