Comment on Java
baseless_discourse@mander.xyz 1 year agoI think one of the main reason to use floor/ceilling is to predictably cast a double into int. This type signature kind of defeats this important purpose.
I don’t know this historical context of java, but possibly at that time, people see type more of a burden than a way to garentee correctness? (which is kind of still the case for many programmers, unfortunately.
BorgDrone@lemmy.one 1 year ago
You wouldn’t need floor/ceil for that. Casting a double to an int is already predictable as the java language spec explicitly says how to do it, so any JVM will do this the exact same way.
The floor/ceil functions are simply primitive math operations and they are meant to be used when doing floating point math.
baseless_discourse@mander.xyz 1 year ago
“predicable” in the sense that people know how it works regardless what language they know.
I guess I mean “no surprise for the reader”, which is more “readability” than “predictability”
BorgDrone@lemmy.one 1 year ago
Is there any language that doesn’t just truncate when casting from a float to an int?
baseless_discourse@mander.xyz 1 year ago
As far as I know, haskell do not allow coresion of float to int without specifying a method (floor, ceil, round, etc)
hoogle.haskell.org/?hoogle=Float+->+Integer&s…
Agda seems to do the same: agda.github.io/agda-stdlib/Data.Float.Base.html