Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robertpainsi/726bde34d2ecd5504c1a88852cb94eeb to your computer and use it in GitHub Desktop.
Save robertpainsi/726bde34d2ecd5504c1a88852cb94eeb to your computer and use it in GitHub Desktop.
import java.math.BigDecimal;
public class CatrobatVersionNumberExceededTest {
public static void main(String[] args) {
int append = 1;
String base = "0.";
while (true) {
String versionAsText = base + append;
float version = Float.parseFloat(versionAsText);
// double version = Double.parseDouble(versionAsText);
BigDecimal real = new BigDecimal(versionAsText);
String trimmed = real.stripTrailingZeros().toPlainString();
boolean equals = String.valueOf(version).compareTo(trimmed) == 0;
System.out.println(version + " " + versionAsText + " " + equals);
if (!equals) {
break;
}
append++;
if (append == 10) {
base += "9";
append = 1;
}
}
}
}
@robertpainsi
Copy link
Author

Output

0.1 0.1 true
0.2 0.2 true
0.3 0.3 true
0.4 0.4 true
0.5 0.5 true
0.6 0.6 true
0.7 0.7 true
0.8 0.8 true
0.9 0.9 true
0.91 0.91 true
0.92 0.92 true
0.93 0.93 true
0.94 0.94 true
0.95 0.95 true
0.96 0.96 true
0.97 0.97 true
0.98 0.98 true
0.99 0.99 true
0.991 0.991 true
0.992 0.992 true
0.993 0.993 true
0.994 0.994 true
0.995 0.995 true
0.996 0.996 true
0.997 0.997 true
0.998 0.998 true
0.999 0.999 true
0.9991 0.9991 true
0.9992 0.9992 true
0.9993 0.9993 true
0.9994 0.9994 true
0.9995 0.9995 true
0.9996 0.9996 true
0.9997 0.9997 true
0.9998 0.9998 true
0.9999 0.9999 true
0.99991 0.99991 true
0.99992 0.99992 true
0.99993 0.99993 true
0.99994 0.99994 true
0.99995 0.99995 true
0.99996 0.99996 true
0.99997 0.99997 true
0.99998 0.99998 true
0.99999 0.99999 true
0.999991 0.999991 true
0.999992 0.999992 true
0.999993 0.999993 true
0.999994 0.999994 true
0.999995 0.999995 true
0.999996 0.999996 true
0.999997 0.999997 true
0.999998 0.999998 true
0.999999 0.999999 true
0.9999991 0.9999991 true
0.9999992 0.9999992 true
0.9999993 0.9999993 true
0.9999994 0.9999994 true
0.9999995 0.9999995 true
0.9999996 0.9999996 true
0.9999997 0.9999997 true
0.9999998 0.9999998 true
0.9999999 0.9999999 true
0.9999999 0.99999991 false

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment