Floating point arithmetics
Floating point arithmetics
Floating point arithmetics
Cause fractions can be figured out in context. You can store the numerators and have the denominator as a constant in the code.
You can also have a type which does it. Raku has a Rational type for this.
Part of my first programming courses in the 90s in C were creating a native fraction type.
Python has the Fraction type, and there are many more
Don't be irrational.
You like math jokes and guys with fast cars? Well, you're in luck because I drive a bmw √-64
Edit: I know nothing about cars. Don't judge me.
I do enjoy how many number sets are referred to as "normal numbers":
unrelated but the image shows so low res (86x96) that it's unreadable, is this different for everyone else?
what mine shows - https://eviltoast.org/pictrs/image/44915c44-8836-4961-bd06-a45bba04408a.jpeg
The link you gave shows hires for me. Can you try loading in incognito?
just pict-rs things I guess 🤷
hmm very weird. i also tried wget and it grabs the same 86x96 file. https://termbin.com/gvg9
It's not "mimicking" a fraction. It is a fraction.
It's also the most compact fraction representation around.
Agreed, but in terms of efficiency wouldn't it make more sense to put the sign bit right before the mantissa in order to keep the memory layout more consistent with powers of two?
Having the sign bit in front, makes them compare like sign-bit-integers and if they are compared/sorted like 2s-complement integers, the negatives are reversed but still come after the positives.
I doubt the layout is relevant there as the FPU should be just physically wired to handle it.
I think you could argue that they're actually trying to mimic real numbers.
Eviltoasts pict-rs is being silly again
The fundamental mathematical nature of how binary floating point values are stored means that extremely straightforward and rational (in the mathematical sense of the term) base-10 arithmetic can surprisingly often yield results that are irrational (again, mathematically) in binary - hence why you’ll sometimes see a result of 3.000000000101325 or something like that in places where you’d expect the result to be simply 3.0
Yep. Open your browser's console and do
.1 + .2
and you get0.30000000000000004
.One of the reasons not to use floating point when working with money.
What's the right way to do money math without floats?
It'd be more correct to say round or unround.
Irrational specifically means infinite non-repeating decimal values, or equivalently that a number can't be represented as any fraction. This is independent of number system.
Sometimes "more irrational" is used as a way of saying further from any small-integer fraction by some measure, but that doesn't really work here.
i see what you're trying to say, but that's not what rational and irrational means (mathematically).
Look what they need to mimic a fraction of a fraction.