Skip to content

Commit 76d47de

Browse files
fix: Number.nan is equal to itself
1 parent 7ddb4e0 commit 76d47de

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

Sources/Haystack/Number.swift

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public struct Number: Val {
2525

2626
var zinc: String
2727
if val.remainder(dividingBy: 1.0) == .zero {
28-
zinc = "\(Int(val))"
28+
zinc = String(format: "%.f", val)
2929
} else {
3030
zinc = "\(val)"
3131
}
@@ -87,3 +87,18 @@ extension Number {
8787
}
8888
}
8989
}
90+
91+
// List + Equatable
92+
extension Number {
93+
public static func == (lhs: Number, rhs: Number) -> Bool {
94+
guard lhs.unit == rhs.unit else {
95+
return false
96+
}
97+
98+
if lhs.val.isNaN {
99+
return rhs.val.isNaN // Consider 2 NaN numbers as equal
100+
}
101+
102+
return lhs.val == rhs.val
103+
}
104+
}

0 commit comments

Comments
 (0)