18 бит дробной частью. Какой крейт можно взять для такого?
U256
это не децимал
Но fixed-point нарисовать можго
Вообще есть просто rust_decimal, у него 4u64 под число
The binary representation consists of a 96 bit integer number
Посмотри GenericArray в RustCrypto, может на нём можно что-нибудь соорудить. Но это не точно.
pub fn div_up(a: &U256, b: &U256) -> Result<U256, &'static str> { if b == &U256_ZERO { return Err("ZERO DIVISION"); } if a == &U256_ZERO { Ok(U256_ZERO) } else { let a_inflated = a.checked_mul(ONE).ok_or("DIV INTERNAL")?; Ok((a_inflated - U256_ONE) / b + 1) } } pub fn div_down(a: &U256, b: &U256) -> Result<U256, &'static str> { if b == &U256_ZERO { return Err("ZERO DIVISION"); } if a == &U256_ZERO { Ok(U256_ZERO) } else { let a_inflated = a.checked_mul(ONE).ok_or("DIV INTERNAL")?; Ok(a_inflated / b) } }
Обсуждают сегодня