【问题标题】:Right justifying decimal array in c#?在c#中右对齐十进制数组?
【发布时间】:2016-08-23 12:46:48
【问题描述】:

我的 c# 编程课程有一个项目;编写一个程序,可以读取员工文件和销售单文件并处理这两者。我已经完成了我需要的 2 个数组,它们填充得很好。我的问题是当我在控制台模式下打印结果时。 我的数组是十进制类型。我需要在某个位置正确对齐所有数字,我知道如何做到这一点的唯一方法是使用函数 .PadRight/.PadLeft ,它只适用于我看到的字符串。有没有其他方法可以做到这一点,或者我应该只是 Convert.ToString 每个值?

【问题讨论】:

  • 您有一些输入和预期输出的示例吗?它可能会更容易确定最有效的方法。
  • 告诉我们与向我们展示您对问题发生位置的了解是两件事。请显示发生意外的代码

标签: c# arrays decimal


【解决方案1】:

如果您只需要输出使用控制台填充的值,您可以简单地使用Composite Formatting 格式化它们,它是{0,spaces-to-format} syntax

// Example array of decimals
var input = new decimal[]{ 12.24m, 199.99m, 1.0m, 42.42m, 100321.123m };
// Format each value to 10 digits
foreach(decimal d in input)
{
    // Format each value to 10 places (right-justfied)
    // You could alternatively use d.ToString("{0,10") 
    Console.WriteLine("{0,10}",d);
}

您可以see a working example of this here并在下面演示:

【讨论】:

    【解决方案2】:

    你在看

    decimal val = 10m;
    //Or PadLeft
    string formattedVal = val.ToString().PadRight(10, ' ');
    

    【讨论】:

    • 这是我的代码打印到控制台的样子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多