@@ -29,12 +29,22 @@ function digitLength(num) {
29
29
return len > 0 ? len : 0 ;
30
30
}
31
31
32
+ /**
33
+ * 精确乘法
34
+ */
35
+ function times ( num1 , num2 ) {
36
+ var num1Changed = Number ( num1 . toString ( ) . replace ( '.' , '' ) ) ;
37
+ var num2Changed = Number ( num2 . toString ( ) . replace ( '.' , '' ) ) ;
38
+ var baseNum = digitLength ( num1 ) + digitLength ( num2 ) ;
39
+ return num1Changed * num2Changed / Math . pow ( 10 , baseNum ) ;
40
+ }
41
+
32
42
/**
33
43
* 精确加法
34
44
*/
35
45
function plus ( num1 , num2 ) {
36
46
var baseNum = Math . pow ( 10 , Math . max ( digitLength ( num1 ) , digitLength ( num2 ) ) ) ;
37
- return ( num1 * baseNum + num2 * baseNum ) / baseNum ;
47
+ return ( times ( num1 , baseNum ) + times ( num2 , baseNum ) ) / baseNum ;
38
48
}
39
49
40
50
/**
@@ -45,16 +55,6 @@ function minus(num1, num2) {
45
55
return ( num1 * baseNum - num2 * baseNum ) / baseNum ;
46
56
}
47
57
48
- /**
49
- * 精确乘法
50
- */
51
- function times ( num1 , num2 ) {
52
- var num1Changed = Number ( num1 . toString ( ) . replace ( '.' , '' ) ) ;
53
- var num2Changed = Number ( num2 . toString ( ) . replace ( '.' , '' ) ) ;
54
- var baseNum = digitLength ( num1 ) + digitLength ( num2 ) ;
55
- return num1Changed * num2Changed / Math . pow ( 10 , baseNum ) ;
56
- }
57
-
58
58
/**
59
59
* 精确除法
60
60
*/
0 commit comments