我有以下脚本,显示以下格式作为输出:
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());
提前致谢
答案 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);