mexprp
mexprp copied to clipboard
Input is always parsed as f64s, which can result in precision errors
This is most noticeable when inputting decimals, for example:
eval::<ComplexRugRat>("2.2") // = becomes 2476979795053773/1125899906842624
However, it also happens when integers become large enough
eval::<ComplexRugRat>("200000000000000000000000") // = 199999999999999983222784
This can be fixed by parsing the number (in parse.rs) with the functions provided by rug. However this will require adding parse functions to the Num trait and passing the N generic type all the way down which will be quite a bit of work.