C# 当数字是整数而不是十进制或双精度时,为什么WriteLine跳过制表符
这似乎是一种奇怪的行为 我下面有一段代码,它从数据库中提取值,然后将它们写入一个文件 x、 Amount是double类型的属性C# 当数字是整数而不是十进制或双精度时,为什么WriteLine跳过制表符,c#,C#,这似乎是一种奇怪的行为 我下面有一段代码,它从数据库中提取值,然后将它们写入一个文件 x、 Amount是double类型的属性 StringWriter sw = new StringWriter(); foreach (var x in result) { sw.WriteLine("name:" + "\t" + 4 + "\t" + x.Amount + "\t" + x.age); } 问题是当金额为整数或整数时,无法打印选项卡 所以我明白了
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());
}
该选项卡没有丢失。将选项卡视为具有列的表。每个列的开始位置都是一个制表符停止位置。无论第1列中有多少个字母,下一列2始终从左边缘开始。因此,第1列和第2列中的值之间的间距将减小。看起来间距是错误的,但实际上它改变了列,只是看起来它是错误的 a | b | c
aaaa | bbbb | c该选项卡没有丢失。将选项卡视为具有列的表。每个列的开始位置都是一个制表符停止位置。无论第1列中有多少个字母,下一列2始终从左边缘开始。因此,第1列和第2列中的值之间的间距将减小。看起来间距是错误的,但实际上它改变了列,只是看起来它是错误的 a | b | c
aaaa | bbbb | c您的标签没有丢失;您的编辑器只需选择该制表位 要将文本对齐到列中,请指定列的宽度。在这里,我将把你的数量填充到8个字符。根据需要更改此号码 我提出两种解决方案。我推荐第一种 解决方案1:使用 用于将金额填充到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:串联
虽然我建议使用复合格式,但您可以在不使用以下内容的情况下执行此操作:
StringWriter sw = new StringWriter();
foreach (var x in result)
{
sw.WriteLine("name:" + "\t" + 4 + "\t" + x.Amount.ToString().PadRight(8) + "\t" + x.age);
}
您的账单没有丢失;您的编辑器只需选择该制表位 要将文本对齐到列中,请指定列的宽度。在这里,我将把你的数量填充到8个字符。根据需要更改此号码 我提出两种解决方案。我推荐第一种 解决方案1:使用 用于将金额填充到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:串联
虽然我建议使用复合格式,但您可以在不使用以下内容的情况下执行此操作:
StringWriter sw = new StringWriter();
foreach (var x in result)
{
sw.WriteLine("name:" + "\t" + 4 + "\t" + x.Amount.ToString().PadRight(8) + "\t" + x.age);
}
它没有丢失。去下一个收费站。你的金额应该用一些填充来写。好的。我该如何解决这个问题?我希望他们都能像数字中有小数点时一样整齐地排列。我能把整数转换成35到35.0吗?它没有丢失。去下一个收费站。你的金额应该用一些填充来写。好的。我该如何解决这个问题?我希望他们都能像数字中有小数点时一样整齐地排列。我能把整数转换成35到35.0吗?