在C#中进行除法以获得精确值

在C#中进行除法以获得精确值,c#,floating-point,integer-division,C#,Floating Point,Integer Division,如果我把150除以100,我应该得到1.5。但当我像下面那样分割时,我得到了1.0: double result = 150 / 100; 有人能告诉我怎么拿到1.5分吗 double result = (150.0/100.0) 一个或两个数字应该是浮点数/双精度数,位于=将一个整数转换为浮点类型的右侧。您应该研究十进制和双精度之间的差异,并决定要使用哪个,但要使用双精度: double result = (double)150 / 100; 使数字浮动 var result = 150

如果我把150除以100,我应该得到1.5。但当我像下面那样分割时,我得到了1.0:

double result = 150 / 100;
有人能告诉我怎么拿到1.5分吗

double result = (150.0/100.0)

一个或两个数字应该是浮点数/双精度数,位于
=

将一个整数转换为浮点类型的右侧。您应该研究十进制和双精度之间的差异,并决定要使用哪个,但要使用双精度:

double result = (double)150 / 100;

使数字
浮动

var result = 150/100f
或者,您可以通过添加
.0
使任意数字浮动:

double result=150.0/100

试试看:

 double result = (double)150/100;
当您像以前一样执行除法时:

double result = 150/100;

除法首先是作为一个整数进行的,然后它被转换为一个双精度,因此你得到1.0,你需要在方程中有一个双精度,它才能作为双精度进行除法。

如果你只使用像150和100这样的文字值,C#将把它们作为整数处理,整数数学总是“舍入”。您可以为float添加“f”或为decimal添加“m”这样的标志,以不获取整数数学。因此,例如
result=150m/100m
会给你一个不同于
result=150/100

查找整数除法的答案-
100
是一个整数-请使用双精度,而不是注意,添加
.0
从技术上讲,它是一个双精度,不适合
浮点
(您的代码显示了这一点,但文本与之矛盾)。
double result = 150/100;