C#Int和math没有返回完整的值

1 c#

Int64 c1 = Convert.ToInt64(csvdeep[1]);
Int64 division = 1024;
string results = Math.Abs(c1 / division / division / division).ToString();
Run Code Online (Sandbox Code Playgroud)

c110201841664results"9".

我更愿意得到小数点后两位,所以我的实际结果是9.50.关于如何获得2位小数的任何提示?

Ode*_*ded 12

这是.NET中整数除法的结果 - 当划分两个整数时,你总是得到一个整数.

您需要至少有一个操作数是浮点类型(float,double,decimal),以使结果成为浮点.

Int64 c1 = Convert.ToInt64(csvdeep[1]);
double division = 1024.0m;
string results = Math.Abs(c1 / division / division / division).ToString();
Run Code Online (Sandbox Code Playgroud)

结果可能会有比您想要的更多小数位,因此您需要在调用中使用格式字符串ToString:

string results = Math.Abs(c1 / division / division / division).ToString("0.00");
Run Code Online (Sandbox Code Playgroud)