gpt4 book ai didi

c# - 当数字是整数而不是小数或 double 时,为什么 WriteLine 会跳过 Tab

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:31 25 4
gpt4 key购买 nike

这似乎是一种奇怪的行为。

我在下面有这段代码,它从数据库中提取值,然后将它们写入文件。

x.Amount 是 double 类型的属性。

StringWriter sw = new StringWriter();
foreach (var x in result)
{
sw.WriteLine("name:" + "\t" + 4 + "\t" + x.Amount + "\t" + x.age);

}

问题是当金额为整数或整数时,标签不会被打印出来。

我明白了。

name:   4    350.5    26
name: 4 350.25 29
name: 4 2000.25 29
name: 4 350 29

正如您在上面看到的,当金额为整数时,文件中似乎缺少选项卡。

我正在使用下面的代码将其写入文件。

using (StreamWriter writer = new StreamWriter(Response.OutputStream, Encoding.Default))
{
writer.Write(sw.ToString());
}

最佳答案

您的标签没有丢失;您的编辑器只是选择那个制表位。

要将文本按列对齐,请指定列的宽度。在这里,我会将您的金额填充到 8 个字符。根据需要更改此数字。

我提出了两个解决方案。我推荐第一个。

解决方案 1:使用 Composite Formatting

使用Composite Formatting将数量填充到 8 个字符:

StringWriter sw = new StringWriter();
foreach (var x in result)
{
sw.WriteLine(String.Format("name:\t{0}\t{1,-8}\t{2}", 4, x.Amount, x.age));
}

解决方案 2:串联

虽然我推荐使用 Composite Formatting,但您可以不使用:

StringWriter sw = new StringWriter();
foreach (var x in result)
{
sw.WriteLine("name:" + "\t" + 4 + "\t" + x.Amount.ToString().PadRight(8) + "\t" + x.age);
}

关于c# - 当数字是整数而不是小数或 double 时,为什么 WriteLine 会跳过 Tab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56813045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com