no_std Rust decimal: fraction precision never shrinks as integers grow; 4 types from u8(2+2) to u128(38+38) digits