我试图用C#编写一段代码,该代码将2个浮点数相除,并将结果返回最多6个小数位。 这是我编写的代码。问题是我得到的结果是0.6而不是0.60000。请提出可能的解决方案。
这是代码:
float probability=((float)counter/(float)(max+N));
probability = probability * (float)1.000000;
Console.WriteLine("Probability:{0:N6}",probability.ToString());
答案 0 :(得分:3)
您不应使用ToString
指定用于字符串格式的值。
调用ToString
后,WriteLine
的第二个参数变为字符串"0.6"
。此处的格式将被忽略,因为运行时仅评估表达式probability.ToString()
。要解决此问题,请删除.ToString
,因为您希望将第二个参数视为float
:
Console.WriteLine("Probability:{0:N6}",probability);
答案 1 :(得分:0)
我认为您想要的是Console.WriteLine("Probability: {0:0.000000}", probability)
。有关详细信息,请参见https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings。