Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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
C#双精度、十进制问题_C#_Integer Division - Fatal编程技术网

C#双精度、十进制问题

C#双精度、十进制问题,c#,integer-division,C#,Integer Division,为什么要这样计算:双数=(13/(13+12+13)) 等于0 我想应该是0.34左右吧 谢谢 因为您在公式中使用的是所有INT,因此结果也将被视为INT 请尝试以下方法: var result = 13.0 / (13.0 + 12.0 + 13.0) 您的结果将是: 0.34210526315789475 尝试添加。0: (13.0/(13+12+13)) 否则,您将处理整数。它们是整数。所以它进行整数除法。从而截断到下一个更低(接近0)的整数 将.0添加到像13.0这样的数字中,使其成

为什么要这样计算:双数=(13/(13+12+13))

等于0

我想应该是0.34左右吧


谢谢

因为您在公式中使用的是所有
INT
,因此结果也将被视为
INT

请尝试以下方法:

var result = 13.0 / (13.0 + 12.0 + 13.0)
您的结果将是:

0.34210526315789475
尝试添加。0:

(13.0/(13+12+13))


否则,您将处理整数。

它们是整数。所以它进行整数除法。从而截断到下一个更低(接近0)的整数


.0
添加到像
13.0
这样的数字中,使其成为双精度。

因为您将
int
除以
int
。你应该做什么

double number = (13.0 /(13.0+12.0+13.0));

另一个选项是将其中一个参数显式转换为double,从而强制运行时执行双除法。e、 g:

double result = ((double)13 / (13 + 12 + 13)); 
添加“.0”将有助于:

double number = (13.0 /(13.0+12.0+13.0));
可能重复的