【发布时间】:2018-08-13 15:56:39
【问题描述】:
我想在 C# 中按如下方式格式化浮点数,以便 C# 中浮点数的整个宽度是固定长度(python 等效格式说明符 6.2f)我不希望它用 0 填充左边但用空格填充
100.00
90.45
7.23
0.00
到目前为止我已经尝试过什么
string.Format({0:###.##},100);
string.Format({0:###.##},90.45);
string.Format({0:###.##},7.23);
string.Format({0:###.##},0.00);
但输出不正确
100
90.45
7.23
//nothing is printed
我也经历过this,但无法找到解决方案。 我知道 string.PadLeft 方法,但我想知道是否有比
更合适的方法(string.format({0,0.00},number)).PadLeft(6," ")
编辑 我特别问是否有正确的内置方法,而不是是否可以使用相同的数学魔法来完成
【问题讨论】:
-
@maccettura 这是怎么重复的?我问是否有格式说明符可以做到这一点?现在,如果它可以不?任何人都可以编写一组复杂的 if 语句来实现我的目标,我问是否有内置的 c# 方法
-
我不知道可以执行此操作的格式字符串,但您的左键盘看起来不错...
-
@SiddharthChabra 您希望格式说明符如何知道您所有其他数字的长度?您正在寻找要对齐的数字,副本完美地解决了这个问题。如果您想知道格式说明符是否可以做到,那么答案是 no
-
@maccettura 你有没有试过
string.format({0,16},integer)这告诉 C# 为整数分配一个 16 位的空间,即使数字更小并且数字的扩展更大。请删除您的重复标签,因为已标记的帖子未回答我的问题
标签: c# string-formatting format-specifiers