在C#中划分2个浮点数时增加精度

时间:2018-07-07 16:23:02

标签: c#

我试图用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());

2 个答案:

答案 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