gpt4 book ai didi

c# - string.Format 忽略 NumberFormatInfo?

转载 作者:太空狗 更新时间:2023-10-29 21:06:35 32 4
gpt4 key购买 nike

我将流程中的数据输出到 csv。我将中间结果存储在数据类中,该数据类还具有将数据输出到字符串的方法,以便将其写入文件。

Class DataClass {

// the actual data
public double Value1 { get; set; }
public double Value2 { get; set; }
public double Value3 { get; set; }

// return headers for this dataclass (called once)
public static string Headers { get { return "Value1\tValue2\tValue3"; } }

// no decimals needed (keep filesize smaller, numbers are millions and up)
static NumberFormatInfo nfi = new NumberFormatInfo() { NumberDecimalDigits = 0 };

// this returns a string with the values for the dataclass (called for each row)
public string ValuesString {
get {
// ** I would expect the numbers to have NO decimals because of nfi **
return string.Format(nfi, "{0}\t{1}\t{2}",
Value1,
Value2,
Value3,
);
}
}
}

这里我写入文件:

// headers
swResultFile.WriteLine("Group\t" + GroupResult.Headers);

// values
foreach (var r in GroupResults) swResultFile.WriteLine(r.Key + "\t" + r.Value.ValuesString);

但是输出文件仍然有所有的小数:

Group  Value1   Value2  Value3
1 176983.222718191 278477.364780645 462811.208871335
2 11262339.27 16383.9680721473 118430.334721429

有谁知道它为什么忽略 NumberFormatInfo?

当我在调试器中检查它时,它看起来很好。

谢谢,

格特简

最佳答案

您必须为 Format 使用 N 格式说明符才能使用 NumberFormatInfo。试试这个

 return string.Format(nfi, "{0:N}\t{1:N}\t{2:N}",
Value1,
Value2,
Value3,
);

关于c# - string.Format 忽略 NumberFormatInfo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6278192/

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