为什么Float转换忽略小数点后的零?

时间:2014-01-01 10:49:33

标签: c# c#-4.0

我不知道浮动数据类型为何忽略.00。

165.00 = 165 ( It displays in this format after ignoring zero's)
165.65 = 165.65

如果浮点长度小于5,我想显示,然后在数字末尾添加零 喜欢 165然后它将显示165.00(我正在使用浮点数据类型)

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您可以通过在小数点后指定两个零来在ToString()中指定格式。您可以阅读有关数字格式here的更多信息。

num.ToString(".00");

答案 1 :(得分:1)

您可以通过ToString()格式化数值。以下是MSDN提供的一些示例。

   double value;

 value = 123;
 Console.WriteLine(value.ToString("00000"));
 Console.WriteLine(String.Format("{0:00000}", value));
 // Displays 00123 

 value = 1.2;
 Console.WriteLine(value.ToString("0.00", CultureInfo.InvariantCulture));
 Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                   "{0:0.00}", value));
 // Displays 1.20

 Console.WriteLine(value.ToString("00.00", CultureInfo.InvariantCulture));
 Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                 "{0:00.00}", value));
 // Displays 01.20

 CultureInfo daDK = CultureInfo.CreateSpecificCulture("da-DK");
 Console.WriteLine(value.ToString("00.00", daDK)); 
 Console.WriteLine(String.Format(daDK, "{0:00.00}", value));
 // Displays 01,20 

 value = .56;
 Console.WriteLine(value.ToString("0.0", CultureInfo.InvariantCulture));
 Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                 "{0:0.0}", value));
 // Displays 0.6 

 value = 1234567890;
 Console.WriteLine(value.ToString("0,0", CultureInfo.InvariantCulture));    
 Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                 "{0:0,0}", value));    
 // Displays 1,234,567,890      

 CultureInfo elGR = CultureInfo.CreateSpecificCulture("el-GR");
 Console.WriteLine(value.ToString("0,0", elGR));    
Console.WriteLine(String.Format(elGR, "{0:0,0}", value));   
 // Displays 1.234.567.890 

 value = 1234567890.123456;
 Console.WriteLine(value.ToString("0,0.0", CultureInfo.InvariantCulture));  
 Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                 "{0:0,0.0}", value));  
 // Displays 1,234,567,890.1   

 value = 1234.567890;
 Console.WriteLine(value.ToString("0,0.00", CultureInfo.InvariantCulture)); 
 Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                 "{0:0,0.00}", value)); 
 // Displays 1,234.57 

答案 2 :(得分:0)

你可以这样做。您可以阅读有关数字N格式说明符here的更多信息。

float  someFloat= 165.00F;
Console.WriteLine(someFloat.ToString("N2"));

答案 3 :(得分:0)

嗯,听起来你想要的只是一种用特定格式表示float的方法。

我确信你会意识到165.00 === 1.65,所以,在你做完之后:

float a = 165.00;
Console.WriteLine(a.ToString())

获取165是一种有效(且预期)的行为。

因此,为了让您获得所需的格式,您需要将format应用于您的数字。 在你的情况下:

Console.WriteLine(a.ToString("N2"));