Sdctf 2021
Alternative Arithmetic (Final Flag)
Solved By : nigamelastic and choco

I will use the following to run this java compiler to run my code online.

on connecting we see the first question which is:
4th question :
Enter 3 `String` values `s1`, `s2`, and `s3` such that:
new BigDecimal(s1).add(new BigDecimal(s2)).compareTo(new BigDecimal(s3)) == 0
but
Double.parseDouble(s1) + Double.parseDouble(s2) != Double.parseDouble(s3)
Do not enter quotation marks.
 answer 4 worked but very stupidly: i will paste my inputs and outputs and you just see :
First attempt
Do not enter quotation marks.
s1 = 0.004
s2 = 0.003
s3 = 0.001
Sorry, your answer is not correct. Try something else next time.
Second attempt
s1 = 20000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000004
s2 = 10000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000003
s3 = 10000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000001
Sorry, your answer is not correct. Try something else next time.
Third attempt
s1 = 0.04
s2 = 0.03
s3 = 0.01
Perfect! You are correct.

credits to choco, who guided me, and after our discussion we realised for some reason
0.04
is working but0.004
isn’t choco also pointed out this amazing link https://docs.oracle.com/cd/E1995701/8063568/ncg_goldberg.html 
finally we discussed and realized the following :

according to double : ```bash 0.003 will be represented as 3.00000000000000006245004513517E3 0.004 will be represented as 4.00000000000000008326672684689E3 0.02 will be represented as 2.00000000000000004163336342344E2
but
0.03 will be represented 2.99999999999999988897769753748E2
* after this stupidity we finally get the 5th and final option:
 Final question! [🎶BOSS MUSIC🎶]
Fill in
```java
var i = (<type>) <num1>; var j = (<type>) <num2>;
such that after running the code above, the following expression:
i < j  i == j  i > j
evaluates to `false`.
<num1> and <num2> are Java code that satisfies this regex: [09]*\.?[09]*
 which is very easy , I remember it from my college days
 its
Integer 128
 this is due to the integer cache limits
 the following link would be a better explanation
 https://www.programmersought.com/article/91462031238/