在C#中划分以获得准确的值

时间:2013-03-14 03:54:55

标签: c# floating-point integer-division

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

double result = 150 / 100;

谁能告诉我如何获得1.5?

5 个答案:

答案 0 :(得分:11)

尝试:

 double result = (double)150/100;

当您像以前一样进行分组时:

double result = 150/100;

devision首先作为Int进行,然后它被转换为double,因此你得到1.0,你需要在等式中得到一个双精度,以便将它除以双精度。

答案 1 :(得分:6)

将其中一个int转换为浮点类型。您应该查看decimal和double之间的区别并确定您想要的,但要使用double:

double result = (double)150 / 100;

答案 2 :(得分:4)

double result = (150.0/100.0)

=

右侧的一个或两个数字应为float / double

答案 3 :(得分:3)

设为数字float

var result = 150/100f

或者您可以通过添加.0

使任何数字浮动
double result=150.0/100

double result=150/100.0

答案 4 :(得分:2)

如果您只使用150和100这样的文字值,C#将把它们视为整数,整数数学总是“向下舍入”。您可以为float添加“f”之类的标志,或者为小数添加“m”以不获取整数数学。因此,例如result = 150m/100m会给出与result = 150/100不同的答案。