1 个不稳定版本
0.1.0 | 2024年8月10日 |
---|
在值格式化中排名第120
每月下载量125次
16KB
103 行
prettty-num
将整数格式化为紧凑的社交媒体风格格式,类似于在JavaScript中使用Intl.NumberFormat("en", { notation: "compact" });
作为数字格式化器。
用法
简单地将PrettyNumber
特质导入到您的模块中,然后您可以在任何可以转换为i64
use pretty_num::PrettyNumber;
// Integers with a magnitude less than 1,000 do not get compacted.
assert_eq!(534.pretty_format(), String::from("534"));
// Integers with a magnitude greater than or equal to 1,000 get compacted.
assert_eq!(15_000.pretty_format(), String::from("15k"));
// Integers will have a single decimal point when rounded.
assert_eq!(4_230_542.pretty_format(), String::from("4.2M"));
// Formatted numbers get rounded to a number without a decimal place when appropriate.
assert_eq!(5_031.pretty_format(), String::from("5k"));
// Also works with negative numbers.
assert_eq!((-25_621_783).pretty_format(), String::from("-25.6M"));
// Can go as high as trillions!
assert_eq!(36_777_121_590_100i64.pretty_format(), String::from("36.8T"));
为什么使用这个库而不是其他数字格式化库?
有几个Rust的数字格式化库,如numfmt
、'human_format'、si_format
和si-scale
。所有这些库都比这个库更灵活。然而,它们都有固定的位数。如果您想要将12格式化为"12"和1500格式化为"1.5k",您将无法做到:您可以得到"2.0"和"1.5k"或"2"和"2k",但它们都使用确切的数字位数/小数点。如果您只需要省略适当的小数的紧凑数字,那么这个库适合您。否则,上述库可能更适合您的使用场景。