6 个版本
使用旧的 Rust 2015
0.2.4 | 2021 年 6 月 6 日 |
---|---|
0.2.3 | 2018 年 10 月 6 日 |
0.1.0 | 2018 年 8 月 20 日 |
0.0.7 | 2017 年 1 月 31 日 |
#21 在 值格式化
73,614 每月下载量
在 757 个 Crates(直接使用 33 个) 中使用
23KB
388 行
NumToA
#![no_std]
兼容零堆分配
标准库提供了一个方便的方法将数字转换为字符串,但这些字符串是堆分配的。如果您有一个需要将大量数字转换为字符串的应用程序,但不想支付堆分配的代价,此 crate 提供了一种高效的 no_std
兼容方法,无需堆分配即可将数字转换为它们的字符串表示形式,并将表示形式存储在可重用的字节数组中。
支持多种基数
除了支持标准的十进制转换外,此实现还允许您选择所需的基数。因此,如果您需要二进制表示,将基数设置为 2。如果您需要十六进制,将基数设置为 16。
&str
示例
use numtoa::NumToA;
let mut buffer = [0u8; 20];
println!("{}", 12345.numtoa_str(10, &mut buffer));
println!("{}", 256652.numtoa_str(10, &mut buffer));
&[u8]
示例
use numtoa::NumToA;
use std::io::{self, Write};
let stdout = io::stdout();
let mut stdout = stdout.lock();
let mut buffer = [0u8; 20];
let number: u32 = 162392;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
assert_eq!(number.numtoa(10, &mut buffer), b"162392");
let number: i32 = -6235;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
let number: i8 = -128;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
let number: i8 = 53;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
let number: i16 = -256;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
let number: i16 = -32768;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
let number: u64 = 35320842;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");
let number: u64 = 18446744073709551615;
let _ = stdout.write(number.numtoa(10, &mut buffer));
let _ = stdout.write(b"\n");