-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Scaling string representation differs from dividing by 10^x #627
Comments
You want the [1] https://docs.rs/rust_decimal/latest/rust_decimal/struct.Decimal.html#method.normalize |
Ah awesome! Should the docs of |
Thanks @Tony-Samuels for your reply - exactly right. @Zarathustra2 - I think there is always an opportunity to make the documentation clearer. In this case, would it help to describe what |
@paupino Yes some clearer docs would be nice. Maybe we can also add a code example directly to the docs as example. I personally think a coding example with comments is more clear than plain text. let num = 3850;
let dec = Decimal::from(num) / Decimal::ONE_THOUSAND;
let mut dec_scale = Decimal::from(num);
dec_scale.set_scale(3).unwrap();
// Passes since same number
assert_eq!(dec, dec_scale);
assert_eq!(dec.to_string(), "3.85".to_string());
// set_scale just moves the decimal point and keeps original mantisse.
// this effects the string representation but both dec & dec_scale represent
// the same number
assert_eq!(dec_scale.to_string(), "3.850".to_string());
assert_eq!(dec_scale, dec);
assert_ne!(dec_scale.to_string(), dec.to_string());
// Use normalize to normalize the mantisse
assert_eq!(dec_scale.normalize().to_string(), "3.85".to_string()); |
Hi there,
Is this intended behaviour? If so is there a way to make scaling behave the same way as if I would divided by any 10^x number so that when I convert it to String I don't have any trailing zeros?
Best regards,
Dario
The text was updated successfully, but these errors were encountered: