C# double not working as expected 
我知道双精度是小数。在下面的程序中,输出是1,尽管我认为它将重复1.05次。
1 2 3 4 5 6
   | static void Main (string[] args) 
{ 
double d = 19 / 18; 
Console.WriteLine(d); 
Console.ReadKey(); 
}  | 
 
我误会了吗?
		
		
- 你误解了整数数学:Integer-19除以Integer-18得到一个整数:1。试试19.0 / 18.0。
 
- "我知道一个双精度数是一个小数"-不是真的。它是一个二进制浮点数,尽管这不是你的问题。您的实际问题是您正在执行整数除法,然后将结果(整数)转换为双精度除法…
 
- C参考划分运算符
 
- 来吧,无数次的问答…
 
- double d = 19 / 18;->double d = (double)(19 / 18);->double d = (double)(1);->double d = 1.0d;
 
 
	  
你误解了整数数学。
1
   | Integer-19 / Integer-18 results in an Integer with value 1.  | 
 
(将值赋给double与此无关。计算结果为整数)。
要修复它,请使用:
		
		
- 或双d=19d/18d;
 
- @xela或double d = 19.0 / 18或double d = 19 / 18.0或double d = 19d / 18或double d = 19 / 18d。
 
- 或overkill double d=convert.todouble(19)/convert.todouble(18);lol