File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed
core-java-modules/core-java-lang-3/src
main/java/com/baeldung/comparedouble
test/java/com/baeldung/comparedouble Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .baeldung .comparedouble ;
2+
3+ import java .util .Comparator ;
4+
5+ public class DoubleComparator implements Comparator <Double > {
6+ private double epsilon ;
7+
8+ public DoubleComparator (double epsilon ) {
9+ this .epsilon = epsilon ;
10+ }
11+
12+ @ Override
13+ public int compare (Double d1 , Double d2 ) {
14+ if (Math .abs (d1 - d2 ) < epsilon ) {
15+ return 0 ; // equal
16+ } else if (d1 < d2 ) {
17+ return -1 ; // d1 is less than d2
18+ } else {
19+ return 1 ; // d1 is greater than d2
20+ }
21+ }
22+ }
Original file line number Diff line number Diff line change @@ -68,4 +68,13 @@ private double getFirstDouble(double d1) {
6868 }
6969 return d1 ;
7070 }
71+
72+ @ Test
73+ public void givenTwoEqualDoubleValues_whenUseComparator_thenReturnsZero () {
74+ double d1 = getFirstDouble (0 );
75+ double d2 = .1 * 8 ;
76+ DoubleComparator comparator = new DoubleComparator (0.000001d );
77+ int result = comparator .compare (d1 , d2 );
78+ assertEquals (0 , result );
79+ }
7180}
You can’t perform that action at this time.
0 commit comments