san*_*084 239 c# double rounding
我想在c#中将两位小数值加倍,我怎么能这样做?
double inputValue = 48.485;
Run Code Online (Sandbox Code Playgroud)
结束后
inputValue = 48.49;
Run Code Online (Sandbox Code Playgroud)
Ale*_* LE 446
这有效:
inputValue = Math.Round(inputValue, 2);
Run Code Online (Sandbox Code Playgroud)
nan*_*din 99
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)
Gag*_*age 25
你应该用
inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)
Math.Round将双精度浮点值舍入到指定的小数位数.
指定数学舍入方法应如何处理两个数字中间的数字.
基本上,上面的函数将获取您的inputvalue并将其四舍五入为2(或您指定的任何数字)小数位.随着MidpointRounding.AwayFromZero
当一个数字是中间两个人之间,实际上是朝着四舍五入是远离零最接近的数字.您还可以使用另一个选项,向最近的偶数舍入.
小智 21
另一种简单的方法是使用带参数的ToString.例:
float d = 54.9700F;
string s = d.ToString("N2");
Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)
结果:
54.97
Run Code Online (Sandbox Code Playgroud)
你可以从下面尝试一下.这有很多方法.
1.
value=Math.Round(123.4567, 2, MidpointRounding.AwayFromZero) //"123.46"
2.
inputvalue=Math.Round(123.4567, 2) //"123.46"
3.
String.Format("{0:0.00}", 123.4567); // "123.46"
4.
string.Format("{0:F2}", 123.456789); //123.46
string.Format("{0:F3}", 123.456789); //123.457
string.Format("{0:F4}", 123.456789); //123.4568
Run Code Online (Sandbox Code Playgroud)
使用插值字符串,这会生成一个四舍五入的字符串:
var strlen = 6;
$"{48.485:F2}"
Run Code Online (Sandbox Code Playgroud)
输出
"48.49"
Run Code Online (Sandbox Code Playgroud)