使用JavaScript实现带精度的乘法,最长可适用范围没有检查。
整数乘法,整数小数,小数小数都可
function Solution(a, b) {
if(a===0 || b===0) return 0; //
let m = 0; //精度
let s1 = a.toString();
let s2 = b.toString();
if(s1.indexOf('.')==-1 && s2.indexOf('.')==-1){
return a*b;
}else{
//计算s1小数点后的位数
m = m + ((s1.indexOf('.') >=0 ) ? s1.split('.')[1].length : 0);
//计算s2小数点后的位数
m = m + ((s2.indexOf('.') >=0 ) ? s2.split('.')[1].length : 0);
//除小数点后的所有位数相乘/精度
return Number(s1.replace('.','')) * Number(s2.replace('.','')) / Math.pow(10,m);
}
}
Solution(0.2,0.3);