Js 코드
🎜>[code]
첫 번째 행을 제외하고(자체적으로 나눌 수 없기 때문에) 다른 행은 팝에서 정확한 결과를 얻어야 합니다. 결과를 보면 우리가 원하는 결과가 아니라는 것을 알게 됩니다. 부정확한 부동 소수점 수 연산 문제를 해결하기 위해 먼저 연산에 포함된 수를 업그레이드합니다(10의 제곱). 이제 수집하고 분류하여 나중에 사용할 수 있도록 여기에 게시하세요.
덧셈
Js 코드
[code]
//설명: JavaScript의 추가 결과에는 오류가 있습니다. 이는 두 개의 부동 소수점 숫자를 추가할 때 더 분명해집니다. 이 함수는 더 정확한 덧셈 결과를 반환합니다.
//Call: accAdd(arg1,arg2)
//반환 값: arg1과 arg2의 정확한 결과
function accAdd(arg1,arg2){
var r1,r2,m
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(". ")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m arg2*m)/ m
}
//Number 타입에 add 메소드를 추가하여 더욱 편리하게 통화할 수 있습니다.
Number.prototype.add = function (arg){
return accAdd(arg,this);
}
//설명: 두 개의 부동 소수점 숫자가 있는 경우 JavaScript의 추가 결과에 오류가 발생합니다. 비교하면 추가되면 더 분명해집니다. 이 함수는 더 정확한 덧셈 결과를 반환합니다.
//Call: accAdd(arg1,arg2)
//반환 값: arg1과 arg2의 정확한 결과
function accAdd(arg1,arg2){
var r1,r2,m
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(". ")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m arg2*m)/ m
}
//Number 타입에 add 메소드를 추가하여 더욱 편리하게 통화할 수 있습니다.
Number.prototype.add = function (arg){
return accAdd(arg,this)
}
뺄셈
Js 코드
[code]
//설명 : JavaScript의 뺄셈 결과에는 오류가 있으며, 이는 두 개의 부동 소수점 숫자를 더할 때 더 분명해집니다. 이 함수는 보다 정확한 뺄셈 결과를 반환합니다.
//Call: accSub(arg1, arg2)
//반환 값: arg1에서 arg2를 뺀 정확한 결과
function accSub(arg1, arg2){
return accAdd(arg1,-arg2) ;
}
//더 편리하게 호출할 수 있도록 Number 유형에 하위 메소드를 추가합니다.
Number.prototype.sub = function (arg){
return accSub(this,arg);
}
//설명: 두 개의 부동 소수점 숫자를 사용하면 자바스크립트의 뺄셈 결과에 오류가 발생합니다. 비교하면 추가되면 더 분명해질 것입니다. 이 함수는 보다 정확한 뺄셈 결과를 반환합니다.
//Call: accSub(arg1, arg2)
//반환 값: arg1에서 arg2를 뺀 정확한 결과
function accSub(arg1, arg2){
return accAdd(arg1,-arg2) ;
}
//더 편리하게 호출할 수 있도록 Number 유형에 하위 메소드를 추가합니다.
Number.prototype.sub = 함수(arg){
return accSub(this,arg)
}
곱셈
Js 코드
코드 복사 코드는 다음과 같습니다.
//설명: JavaScript의 곱셈 결과에는 오류가 있습니다. 이는 두 개의 부동 소수점 숫자를 곱할 때 더 분명해집니다. 이 함수는 더 정확한 곱셈 결과를 반환합니다.
//Call: accMul(arg1,arg2)
//반환 값: arg1에 arg2를 곱한 정확한 결과
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)
}
//Number 유형에 mul 메소드를 추가하여 보다 편리하게 호출할 수 있습니다.
Number.prototype.mul = function (arg){
return accMul(arg, this);
}
//설명: 두 개의 부동 소수점 숫자를 사용하면 자바스크립트의 곱셈 결과에 오류가 발생합니다. 비교하면 곱하면 더 명확해집니다. 이 함수는 더 정확한 곱셈 결과를 반환합니다.
//Call: accMul(arg1,arg2)
//반환 값: arg1에 arg2를 곱한 정확한 결과
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)
}
//Number 유형에 mul 메소드를 추가하여 보다 편리하게 호출할 수 있습니다.
Number.prototype.mul = function (arg){
return accMul(arg, this);
} 나누기
Js 코드
//설명: 자바스크립트의 나누기 결과에 오류가 있습니다. . 두 개의 부동 소수점 숫자를 나눌 때 더 명확해집니다. 이 함수는 더 정확한 나누기 결과를 반환합니다.
//Call: accDiv(arg1,arg2)
//반환 값: arg1을 arg2로 나눈 정확한 결과
function accDiv(arg1,arg2){
var t1=0,t2= 0 ,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString(). 분할 (".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1)
}
}
//Number 유형에 div 메소드를 추가하면 통화가 더욱 편리해집니다.
Number.prototype.div = function (arg){
return accDiv(this, arg);
}
//설명: 두 개의 부동 소수점 숫자를 사용하면 자바스크립트의 나누기 결과에 오류가 발생합니다. 비교하면 제거하면 더 분명해집니다. 이 함수는 더 정확한 나누기 결과를 반환합니다.
//Call: accDiv(arg1,arg2)
//반환 값: arg1을 arg2로 나눈 정확한 결과
function accDiv(arg1,arg2){
var t1=0,t2= 0 ,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString(). 분할 (".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1)
}
}
//Number 유형에 div 메소드를 추가하면 통화가 더욱 편리해집니다.
Number.prototype.div = function (arg){
return accDiv(this, arg)
}
테스트
Js 코드