1 个不稳定版本

0.1.0 2024年8月10日

值格式化中排名第120

Download history 125/week @ 2024-08-10

每月下载量125

GPL-3.0-or-later

16KB
103

License Last commit GitHub stars

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_formatsi-scale。所有这些库都比这个库更灵活。然而,它们都有固定的位数。如果您想要将12格式化为"12"和1500格式化为"1.5k",您将无法做到:您可以得到"2.0"和"1.5k"或"2"和"2k",但它们都使用确切的数字位数/小数点。如果您只需要省略适当的小数的紧凑数字,那么这个库适合您。否则,上述库可能更适合您的使用场景。

无运行时依赖