我需要格式化浮点值,而我只需要点后两个数应该是圆角值浮点变量格式
float first = 7, Second = 3,result;
result = first/Second; // result contain 2.33333325 since I need like 2.33
感谢
我需要格式化浮点值,而我只需要点后两个数应该是圆角值浮点变量格式
float first = 7, Second = 3,result;
result = first/Second; // result contain 2.33333325 since I need like 2.33
感谢
?5/3
1.6666666666666667
?String.Format("{0:0.00}", 5/3)
"1,67"
?System.Math.Round(5/3, 2)
1.67
?(5.0/3).ToString("0.00")
"1,67"
?(5/3).ToString("0.00")
"1,00"
?(5.0/3).ToString("E") //Exponential
"1,666667E+000"
?(5.0/3).ToString("F") //Fixed-point
"1,67"
?(5.0/3).ToString("N") //Number
"1,67"
?(5.0/3).ToString("C") //Currency
"1,67 €"
?(5.0/3).ToString("G") //General
"1,66666666666667"
?(5.0/3).ToString("R") //Round-trip
"1,6666666666666667"
?(5.0/3).ToString("this is it .")
"this is it 2"
?(5.0/3).ToString("this is it .0")
"this is it 1,7"
?(5.0/3).ToString("this is it .0##")
"this is it 1,667"
?(5.0/3).ToString("this is it #####")
"this is it 2"
?(5.0/3).ToString("this is it .###")
"this is it 1,667"
可以使用Math.Round圆的数量或指定它应该出现在输出中使用格式说明符。如果您想对需要的值进行进一步计算,以决定是否需要舍入值或更准确的值。
对于格式说明符,您可以在这种情况下使用{0:f}。看到这个帖子的例子http://blog.stevex.net/string-formatting-in-csharp/
Console.WriteLine(String.Format("{0:f}", result));
正如本所指出的ToString接受相同的格式说明,因此,如果数量不是你可以做一个文本的一部分。
result.ToString("f");
布赖恩说,浮标只是作为二进制数据存储 - 它们不包含格式。当您将数字格式化为字符串时,您可能只需要担心这一点。
但是,如果您对涉及小数点的特定操作感兴趣,您可能需要查看使用decimal
而不是float
开始。你在这里工作的是什么样的号码?
尤其是,如果您正在执行多项操作并希望在数字本身中进行取整,那么那么decimal
可能是更好的选择。有关更多信息,请参见我的关于binary floating point和decimal floating point的文章。
难道你不能只使用'result.ToString(“f”);'使用标准的数字格式字符串? http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx – 2009-12-04 11:27:00
好点。我通常会使用String.Format来包含其他文本/数字。我已将您的评论添加到我的答案中。谢谢。 – 2009-12-04 12:13:31