+ 1
what is wrong with this code
this code contains a method that compares two positive floats and return true if the difference is less than 0.000001, when testing the code for different values , it gives contradicting results , sometimes two floats with exactly 0.000001 difference return true , with other pair returns false , does anybody have idea about this or something is wrong with the code? https://code.sololearn.com/cNC4A7mros9t/?ref=app https://code.sololearn.com/cNC4A7mros9t/?ref=app
3 Réponses
+ 2
Ask to your code to print difference value, you will get a little surprise
+ 1
I don't understand much about this, but it happens because every language has its own way to "reach" to every number. In Python for example, you do:
0.0001 + 0.0002
str(0.0001 + 0.0002)
print(0.0001 + 0.0002)
Outputs:
0.00030000000000000003
'0.0003'
0.0003
The real number is the first output but Python finds the way to round it.
For that reason, functions like your code are useful for to get a nice approximation of a number :)
0
@sebastian well it is a little surprise but has a big effects