博主对这道题目的分析非常好。
至于博主的问题,只要在 Main() 方法的入口点加上以下一行语句就 OK 了:
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
或者把程序中最后一条语句改为:
Console.WriteLine(result.ToString("F4", System.Globalization.CultureInfo.InvariantCulture));
也行。
原因是:
俄罗斯乌拉尔大学在线题库的服务器是俄罗斯的服务器,如果省略了第11行,就相当将该行改为:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru-RU");
这样,该程序的输出将使用逗号(,)而不是句号(.)作为小数点。
博主的机器当然是在中国,而中国文化中浮点数的小数是句号(.)。
所以博主的程序在他自己的机器上运行的输出是:
52.8015。在俄罗斯乌拉尔大学在线题库的服务器运行时输出就变为:
52,8015 了。
作了以上修改后,使用了 CultureInfo.InvariantCulture,就不受服务器所在地的影响了。 :)
请参见:
“可以使用C#语言的在线ACM题库”中2楼的评论。
http://www.cnblogs.com/skyivben/archive/2008/06/07/1215740.html