减去结果精度问题

时间:2012-12-11 11:05:27

标签: c#

  

可能重复:
  Division returns zero

假设您有以下代码。

double d=16/60; //I got d is 0.0 , but I expected d could be 0.27. 

如何制作?谢谢。

编辑最佳答案:)

double d=16/60f;
d= Math.Round(d, 2); //result being 0.27

2 个答案:

答案 0 :(得分:7)

这是由于integer division

至少有一个操作数需要是浮点类型(floatdouble)。

double d=16/60f;

double d=16f/60;

double d=16/60d;

double d=16d/60;

double d=16.0/60;

double d=16/60.0;

答案 1 :(得分:1)

制作演员

double d = (double)16 / (double)60

或者:

double d = Convert.ToDecimal(16)/Convert.ToDecimal(60)