在C#中进行除法以获得精确值
如果我把150除以100,我应该得到1.5。但当我像下面那样分割时,我得到了1.0:在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
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;