Int64 c1 = Convert.ToInt64(csvdeep[1]);
Int64 division = 1024;
string results = Math.Abs(c1 / division / division / division).ToString();我的c1是10201841664,results是"9"。
我更喜欢得到小数点后两位,所以我的实际结果应该是9.50。有什么关于如何得到小数点后两位的建议吗?
发布于 2010-04-08 01:54:24
这是.NET中整数除法的结果-当除以两个整数时,你总是得到一个整数。
您需要至少有一个操作数是浮点类型(浮点、双精度、小数),才能使结果成为浮点。
Int64 c1 = Convert.ToInt64(csvdeep[1]);
double division = 1024.0m;
string results = Math.Abs(c1 / division / division / division).ToString();这样做的结果可能会比您想要的小数位数多,因此您需要在调用ToString时使用格式字符串
string results = Math.Abs(c1 / division / division / division).ToString("0.00");发布于 2010-04-08 01:54:25
您可以尝试:
string results = Math.Abs(((double)c1)/division/division/division)
.ToString("0.00");通过将第一个值(c1)转换为浮点值而不是整数,可以强制将除法的结果也转换为浮点数。
这将强制使用Math.Abs(double)而不是Math.Abs(long)
发布于 2010-04-08 01:56:27
试一试
Int64 c1 = 10201841664;
Int64 division = 1024;
string results = Math.Abs((decimal)c1/division/division/division).ToString("0.00"); 你甚至可以去
Int64 c1 = 10201841664;
Int64 division = 1024;
string results = Math.Abs((double)c1 / Math.Pow((double)division, 3)).ToString("0.00"); https://stackoverflow.com/questions/2594691
复制相似问题