【发布时间】:2023-01-09 00:44:24
【问题描述】:
我正在尝试打印出字符串“name”的固定长度为 20(尾随空格)的行。
然后我想生成一个包含 10 个整数和 8 个小数的浮点数(数量),问题是我不知道如何用前导零格式化数量/浮点数,使它们的长度相同,也出于某种原因,目前所有的小数都变成了零。
我想要的输出:
John Doe D4356557654354645634564563.15343534
John Doe C5674543545645634565456345.34535767
John Doe C0000000000000000000000000.44786756
John Doe D0000000000000000000865421.12576545
当前的输出是什么样的:
John Doe 12345678912345C390571360.00000000
John Doe 12345678912345D5000080896.00000000
John Doe 12345678912345C4320145.50000000
John Doe 12345678912345C1073856384.00000000
代码
use rand::Rng;
use pad::PadStr;
struct Report {
name: String,
account_number: i64,
letter: char,
amount: f32,
}
fn main() {
let mut n = 1;
let mut rng = rand::thread_rng();
while n < 101 {
let acc = Report {
name: String::from("John Doe").pad_to_width(20),
account_number: 12345678912345,
letter: rng.gen_range('C'..='D'),
amount: rng.gen_range(100.1..9999999999.9),
};
println!("{}{}{}{:.8}\n", acc.name, acc.account_number, acc.letter, acc.amount);
n += 1;
}
}
(出于某种原因,“pad”在操场上不起作用)
【问题讨论】:
-
D4356557654354645634564563.144.85343534应该是什么?它有多个点... -
请提供“预期输出”实际上与您的问题有什么关系。另外,请不要一次问多个问题。您目前正在问为什么字符串上的左填充不起作用,如何打印固定长度的浮点数以及为什么随机生成的浮点数是整数。
-
对不起,这是一个错字,现在已经编辑并修复了它。
-
为什么你的“预期输出”在与当前输出不同的位置有一个“D”或“C”?
-
你是什么意思'然后我想生成一个浮点数'?特定分布?如果不是,为什么不直接生成两个整数并在中间加一个点呢?
标签: rust