Skip to content

Commit 5d5fb6d

Browse files
authored
Merge pull request #18 from TechDevSubhopriyo/master
Removed the issue
2 parents 2be1bd9 + fa7c9ab commit 5d5fb6d

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

src/simplejavacalculator/Calculator.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
package simplejavacalculator;
1313

14+
import static java.lang.Double.NaN;
1415
import static java.lang.Math.log;
1516
import static java.lang.Math.log10;
1617
import static java.lang.Math.pow;
@@ -33,7 +34,11 @@ private Double calculateBiImpl() {
3334
return num2;
3435
}
3536
if (mode == BiOperatorModes.add) {
36-
return num1 + num2;
37+
if (num2 != 0) {
38+
return num1 + num2;
39+
}
40+
41+
return num1;
3742
}
3843
if (mode == BiOperatorModes.minus) {
3944
return num1 - num2;
@@ -57,7 +62,7 @@ public Double calculateBi(BiOperatorModes newMode, Double num) {
5762
num2 = 0.0;
5863
num1 = num;
5964
mode = newMode;
60-
return Double.NaN;
65+
return NaN;
6166
} else {
6267
num2 = num;
6368
num1 = calculateBiImpl();
@@ -75,7 +80,7 @@ public Double reset() {
7580
num1 = 0.0;
7681
mode = BiOperatorModes.normal;
7782

78-
return Double.NaN;
83+
return NaN;
7984
}
8085

8186
public Double calculateMono(MonoOperatorModes newMode, Double num) {
@@ -95,6 +100,13 @@ public Double calculateMono(MonoOperatorModes newMode, Double num) {
95100
return Math.sin(num);
96101
}
97102
if (newMode == MonoOperatorModes.tan) {
103+
if (num == 0 || num % 180 == 0) {
104+
return 0.0;
105+
}
106+
if (num % 90 == 0 && num % 180 != 0)
107+
return NaN;
108+
}
109+
98110
return Math.tan(num);
99111
}
100112
if (newMode == MonoOperatorModes.log) {
@@ -103,10 +115,10 @@ public Double calculateMono(MonoOperatorModes newMode, Double num) {
103115
if (newMode == MonoOperatorModes.rate) {
104116
return num / 100;
105117
}
106-
if(newMode == MonoOperatorModes.abs){
118+
if (newMode == MonoOperatorModes.abs){
107119
return Math.abs(num);
108120
}
109-
121+
110122
// never reach
111123
throw new Error();
112124
}

0 commit comments

Comments
 (0)