c#中1/252 = 0?
我正在做一个计算,在调试时我发现了这个:
double num = 1/252;
当我调试它时,num被设置为零(0)。 是否有一个原因? 我想把它作为实际计算。
谢谢
是 – 该计算以整数运算执行。 试试这个:
double num = 1.0 / 252.0;
基本上,分配结果的变量类型不会影响正在执行的算术运算。 将一个整数除以另一个整数的结果是整数; 如果要使用浮点运算,则需要将一个或另一个操作数设置为浮点类型。 用文字做这个的一个简单方法就是在结尾贴上“.0”。 另一种方法是使用d
后缀:
double num = 1d / 252d;
请注意,您只需要使一个操作数成为浮点值才能工作,但为了清楚起见,我可能会在这种情况下执行这两个操作。
当然,文字很容易做到,但对于其他表达式(变量,方法调用的结果等),您需要使用强制转换:
int x = 1; int y = 252; double num = (double) x / (double) y;
同样,你只需要投出其中一个,所以这也可以:
int x = 1; int y = 252; double num = (double) x / y;
请注意,这不是特定于除法 – 它也会影响其他算术运算符。
1和252都是文字整数,因此计算使用整数数学。 0是最接近的整数结果。 使用1.0或252.0获取正确的double值。
你正在划分2个整数并且投入到双精度,
尝试
double num = 1d/252d;