0 c#
我在格式化字符串时遇到问题:
Console.WriteLine("SSN: {0} Gross: {1} Tax: {2}", t[x].SSN, t[x].Gross.ToString("C"), t[x].Tax.ToString("C"));
Run Code Online (Sandbox Code Playgroud)
它应该打印:
SSN Gross Tax
123456789 $30,000.00 $8400.00
Run Code Online (Sandbox Code Playgroud)
完整代码如下:
using System;
namespace TaxPayerDemo
{
class Program
{
static void Main()
{
TaxPayer[] t = new TaxPayer[10];
int x;
for(x = 0; x < t.Length; ++x)
{
// Stores SSN
t[x] = new TaxPayer();
Console.Write("Please enter your SSN >> ");
t[x].SSN = Console.ReadLine();
// Stores Gross Income
Console.Write("Please enter your income >> ");
t[x].Gross = Convert.ToDouble(Console.ReadLine());
}
for (x = 0; x < t.Length; ++x)
{
t[x].calcTax();
Console.WriteLine();
Console.WriteLine("SSN: {0} Gross: {1} Tax: {2}", t[x].SSN, t[x].Gross.ToString("C"),
t[x].Tax.ToString("C"));
}
Console.ReadKey();
}
}
class TaxPayer
{
private const double LOW_TAXRATE = 0.15;
private const double HIGH_TAXRATE = 0.28;
public double Tax { get; set; }
public double Gross { get; set; }
public string SSN { get; set; }
public void calcTax()
{
if (Gross < 30000)
{
Tax = LOW_TAXRATE * Gross;
}
if (Gross >= 30000)
{
Tax = HIGH_TAXRATE * Gross;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关字符串格式如何工作的信息,请查看复合格式。为了对齐文本,请使用以下格式{0,min_width}:
Console.WriteLine("SSN Gross Tax");
Console.WriteLine("{0,-15}{1,-15}{2,-15}", t[x].SSN, t[x].Gross.ToString("C"), t[x].Tax.ToString("C"));
Run Code Online (Sandbox Code Playgroud)
这将使值与标题对齐。随意将 15 更改为任何其他值;只需记住在标题中添加正确的间距(在“SSN”、“Gross”和“Tax”之间)。
请注意,我使用的最小宽度为 -15。这-意味着文本将左对齐。改用正数使其右对齐。