如何定义输出格式

时间:2014-03-25 22:45:55

标签: c#

我有以下脚本,显示以下格式作为输出:

67534 : 0.645623
64653 : 0.854261
95688112 : 0.7566438

当我在另一个系统上测试我的脚本时,第二列的格式(浮点数)改为:12.3E ^ 12。当我从控制面板更改数字格式时,格式变得正常。在我的代码中修改数字格式而不是更改系统的数字格式(仅适用于第二列(resultwithindex.result))的解决方案是什么?

foreach (var resultwithindex in results.Select((r, index) => new { result = r, Index = index }).OrderByDescending(r => r.result).Take(n))
{
  sb1.AppendFormat("{0}: {1}", c[resultwithindex.Index], resultwithindex.result);
  sb1.AppendLine();
}
MessageBox.Show(sb1.ToString());

提前致谢

2 个答案:

答案 0 :(得分:2)

关键是使用“F6”格式字符串作为小数值。

您可以在将ToString发送到AppendFormat之前进行sb1.Appendformat "{0}: {1}", c[resultwithindex.Index], resultwithindex.result.ToString("F6", CultureInfo.InvariantCulture) ); 调用(如下所示)

sb1.Appendformat(CultureInfo.InvariantCulture, "{0}: {1:F6}", c[resultwithindex.Index], resultwithindex.result);

...或者利用复合格式字符串并按照以下方式执行:

{{1}}

答案 1 :(得分:1)

为避免字符串的格式取决于您所使用的计算机的区域性设置,您需要将区域性指定为格式提供程序。例如:

sb1.AppendFormat(CultureInfo.InvariantCulture, "{0}: {1}", 
                 c[resultwithindex.Index], resultwithindex.result);