C#中的除法运算获取精确值

7
如果我将150除以100,应该得到1.5。但是当我像下面这样除法运算时,我得到了1.0:
double result = 150 / 100;

有人能告诉我如何获得1.5吗?


2
查找整数除法 - 100 是一个整数 - 使用双精度浮点数代替。 - BrokenGlass
5个回答

17

尝试执行以下操作:

 double result = (double)150/100;

当你像以前一样进行除法时:

double result = 150/100;

首先,将被除数转换为整型进行计算,然后再将结果强制转换为双精度浮点型,因此得到的结果是1.0。你需要在等式中使用双精度浮点型才能得到双精度除法的结果。


10
将其中一个整数转换为浮点类型。你应该研究一下十进制和双精度之间的区别,然后决定你想要哪个,但是如果要使用双精度,请执行以下操作:
double result = (double)150 / 100;

5
使数字成为浮点数。
var result = 150/100f

你可以通过添加.0使任何数字变为浮点数:

double result=150.0/100

或者

double result=150/100.0

请注意,添加“.0”在技术上使其成为双精度浮点数,而不适合于“float”(您的代码显示了这一点,但文本与之矛盾)。 - Basic

4
double result = (150.0/100.0)
< p>在等号右侧,一个或两个数字应该是浮点数/双精度浮点数。


2

如果你只是使用像150和100这样的字面值,C#会将它们视为整数,并且整数运算总是“向下取整”。你可以添加一个标志,如“f”表示浮点数或“m”表示十进制数,以避免得到整数运算结果。因此,例如result = 150m/100m将给出与result = 150/100不同的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接