我有以下两种情况,我想将某个计算值与浮动值 0.05 进行比较。
在第一种情况下,该值将转换为字符串,以获取小数点后两位的值,然后将其转换回数字进行比较。
var soneFunction = function(value)
{
var a = ((Math.round(value * 10) / 10) - value).toFixed(2);
if(Number(a) === 0.05)
a = -0.05;
return a;
};
在第二种情况下,我没有进行任何字符串数转换,而是使用数学函数。
var soneFunction = function(value)
{
var roundingValue = (Math.round(value * 10) / 10) - value;
// fix the value till 2 decimal places
var a = Math.round((roundingValue) * 100) / 100;
if(a === 0.05)
a = -0.05;
return a;
};
我很想知道哪一个更好?
更新 更好的是,我的意思是性能和内存消耗。
答案 0 :(得分:0)
我认为你可以使用
let parseFloatWithPrecision = function (value, precision){
var floatValue = parseFloat(value) || 0.0 ;
floatValue = floatValue.toFixed(precision);
return parseFloat(floatValue);
}
let compare = function(val){
if(parseFloatWithPrecision(val, 2) == 0.05)
return -0.05;
return val;
}