Skip to content

解决js 浮点数相乘精确度问题 #77

@mcya

Description

@mcya

解决js 浮点数相乘精确度问题

var array = [0.97, 0.99, 0.99], val=1, vals=1;
for (var i = 0; i < array.length; i++) {
    val *= array[i];
	vals = accMul(array[i], vals)
}
console.log(val, vals)
function accMul(arg1,arg2) {
    var m=0,s1=arg1.toString(),s2=arg2.toString();
    try{m+=s1.split(".")[1].length}catch(e){}
    try{m+=s2.split(".")[1].length}catch(e){}
    return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions