I have picked two random double numbers:
double a = 7918.52;
double b = 5000.00;
I would expect to get 2918.52 from a - b.
Well, it gives me a result of 2918.5200000000004, which seems odd.
print(a - b); // -> 2918.5200000000004
But if I change double a to 7918.54, I will get the expected result of 2918.54.
Can someone explain to me why some double values result in unexpected rounding issues and others do not?
The reason for this is floating-point arithmetic and the fact that Dart uses the IEEE 754 standard as far as I am concerned.
This happens for all languages that use floating-point arithmetic. You can read through similar questions regarding other programming languages.
General question about floating-point arithmetic in modern programming languages.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With