pub fn trunc(input: f64, decimal_places: u8) -> f64
can only truncate to 19 decimal places safely a normalised (between 0-1) f64 value will have a maximum of 8 significant digits after the decimal place