为什么浮点数转换会忽略小数点后面的零?

3

我不知道为什么浮点数数据类型会忽略 .00。

例如:

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

我希望展示如果浮点数长度小于5,则在数字末尾添加零, 例如:165,那么它会显示为165.00(我正在使用浮点数据类型)
有什么想法吗?
4个回答

3

ToString()函数中,您可以通过在小数点后面指定两个零来设置格式。您可以在这里了解更多有关数字格式的信息。

num.ToString(".00");

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 

0

你可以这样做。你可以在这里阅读更多关于数字N格式说明符的内容。

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

0

嗯,看起来你想要的只是以特定格式表示你的float

我相信你意识到165.00 === 1.65,所以,在你执行以下操作后:

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

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接