#pretty-print #float #format #print #human #pretty #string-formatting

float-pretty-print

格式化 f64 以供用户查看,而非序列化

2 个版本

使用旧的 Rust 2015

0.1.1 2021 年 10 月 2 日
0.1.0 2019 年 5 月 7 日

文本处理 中排名 406

Download history 504/week @ 2024-03-11 231/week @ 2024-03-18 523/week @ 2024-03-25 521/week @ 2024-04-01 155/week @ 2024-04-08 436/week @ 2024-04-15 212/week @ 2024-04-22 405/week @ 2024-04-29 196/week @ 2024-05-06 385/week @ 2024-05-13 487/week @ 2024-05-20 147/week @ 2024-05-27 154/week @ 2024-06-03 214/week @ 2024-06-10 192/week @ 2024-06-17 409/week @ 2024-06-24

每月下载量 976
用于 9 包(6 个直接使用)

MIT/Apache

315KB
5.5K SLoC

float-pretty-print

将 f64 数字四舍五入并格式化以供人类查看,具有可配置的最小和最大宽度。它根据需要自动在指数形式和常规形式之间切换。

它通过尝试常规的 format!,可能多次,并检查生成的字符串来工作。

只支持两种格式化参数

  • 宽度是最小宽度
  • 精度是最大宽度

如果它无法在给定的约束下输出数字,则打印 ###

示例

  use float_pretty_print::PrettyPrintFloat;
  assert_eq!(format!("{}", PrettyPrintFloat(3.45)), "3.45");
  assert_eq!(format!("{}", PrettyPrintFloat(12.0)), "12.0");
  assert_eq!(format!("{}", PrettyPrintFloat(120000000.0)), "1.2e8");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(12345.0)), "12345");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(12.345)), "12.35");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(0.12345)), "0.123");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(1234500000.0)), "1.2e9");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(12345.0e-19)), "1e-15");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(12345.0e-100)), "1e-96");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(12345.0e-130)), "    0");
  assert_eq!(format!("{:5.5}", PrettyPrintFloat(12345.0e+130)), "1e134");
  assert_eq!(format!("{:4.4}", PrettyPrintFloat(12345.0e+130)), "####");
  assert_eq!(format!("{:6.6}", PrettyPrintFloat(12345.0e-130)), "1e-126");

支持甚至 Rust 1.23

没有运行时依赖