Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
1/252=0英寸c#?_C# - Fatal编程技术网

1/252=0英寸c#?

1/252=0英寸c#?,c#,C#,我正在进行计算,调试时发现: double num = 1/252; 当我调试这个时,num被设置为零(0)。这有什么原因吗?我想按实际计算 谢谢是-该计算正在整数算术中执行。试试这个: double num = 1.0 / 252.0; 基本上,结果分配给的变量类型不会影响正在执行的算术运算。一个整数除以另一个整数的结果是一个整数;如果希望使用浮点算术,则需要将其中一个操作数设置为浮点类型。一种简单的文字处理方法是将“.0”粘贴在末尾。另一种选择是使用d后缀: double num = 1

我正在进行计算,调试时发现:

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获得正确的双精度值。

您正在将2整数除以并转换为双精度

试一试


或者,如果您有整数变量,请将其中一个变量转换为double:(double)a/b。这就是Jon Skeet,他回答了您的问题。把这个给你所有的朋友看。我会。:)可能重复的
double num = 1d/252d;