Thanks to everyone who gave feedback!
Arbitrary precision is now supported in 0.3.0 after integrating the `astro_float` (https://docs.rs/astro-float/latest/astro_float/index.html) `BigFloat` type as the base for numbers in the language.
Still working out the kinks, but its live so give it a try!
> sqrt(10^100)-1 -> 100000000000000000000000000000000000000000000000000
Not what I expected.
Hey nice! We have similar interests. I built something similar, but with way less calculator functionality than you did :D
But the main idea I was going for was real-time JIT evaluation with rendered errors (specifically learning / using cranelift JIT) - less to do with the calculator aspect.
I ended up choosing miette for errors.
https://github.com/jasonjmcghee/basic-treesitter-cranelift-j...
This is cool.
It love to have to base conversion functions, even if it's print only. Does that fit at all?
I wish you well. And I clicked you a star on github. Keep up the good work.
very cool, welcome to the small club of CLI calculator authors! before I read this I knew of frink and crag (https://raku.land/zef:librasteve/App::Crag since you ask)
Crag is built on raku so has some neat tricks up its sleeve - you can see Crag of the Day to see some in action...
crag '0.1+0.2=0.2' #True (arbitrary precision)
crag '₃₆123.45' #3F.G77777 (base 36)
crag 'e ** (i * π) =~= -1' #True (math symbols, complex numbers)
crag '0rMCMXLIV' #1944 (Roman numerals)
crag '^<௪௨ mph>' #42mph (Unicode and units)
hee hee[dead]
The UI is awesome, amazing work! However, arbitrary precision implies that there is no fixed upper limit to the number of digits - simple tests like `0.1 + 0.2 == 0.3` and `2^53 == 2^53 + 1` (both produce "false") indicates you're still using IEEE 754 double precision floats.
If "arbitrary precision" is not as important to you as "high precision", a 128 bit decimal has enough precision for 99% of real-world applications.