浮点变量格式

Muh*_*tar 1 c# asp.net floating-point

我需要格式化浮点值,我只需要点后2个数字,并且应该是舍入值

 float first = 7, Second = 3,result;
 result = first / Second; // result contain 2.33333325 since I need like 2.33
Run Code Online (Sandbox Code Playgroud)

谢谢

ser*_*hio 9

?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"
Run Code Online (Sandbox Code Playgroud)


Bri*_*sen 5

您可以使用Math.Round对数字进行舍入,或使用格式说明符指定它在输出中的显示方式.如果要对值进行进一步计算,则需要确定是否需要舍入值或更准确的值.

对于格式说明符,在这种情况下可以使用{0:f}.有关示例,请参阅此帖子http://blog.stevex.net/string-formatting-in-csharp/

Console.WriteLine(String.Format("{0:f}", result));
Run Code Online (Sandbox Code Playgroud)

正如Ben指出ToString接受相同的格式说明符,所以如果数字不是文本的一部分,你可以这样做.

result.ToString("f");
Run Code Online (Sandbox Code Playgroud)

  • 难道你也不能只使用`result.ToString("f");`来使用标准的数字格式字符串?http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx (2认同)