【发布时间】:2013-03-02 07:23:33
【问题描述】:
如果我将 150 除以 100,我应该得到 1.5。但是当我像下面那样划分时,我得到了 1.0:
double result = 150 / 100;
谁能告诉我如何获得 1.5?
【问题讨论】:
-
查找整数除法 -
100是一个整数 - 改用双精度数
标签: c# floating-point integer-division
如果我将 150 除以 100,我应该得到 1.5。但是当我像下面那样划分时,我得到了 1.0:
double result = 150 / 100;
谁能告诉我如何获得 1.5?
【问题讨论】:
100 是一个整数 - 改用双精度数
标签: c# floating-point integer-division
试试:
double result = (double)150/100;
当你像以前一样进行除法时:
double result = 150/100;
除法首先作为一个 Int 完成,然后它被转换为一个双精度因此你得到 1.0,你需要在等式中有一个双精度才能将它除为双精度。
【讨论】:
将其中一个整数转换为浮点类型。您应该查看小数和双精度之间的区别并决定您想要哪个,但要使用双精度:
double result = (double)150 / 100;
【讨论】:
拨打号码float
var result = 150/100f
或者您可以通过添加.0 使任何数字浮动:
double result=150.0/100
或
double result=150/100.0
【讨论】:
.0 会使它成为不适合 float 的双精度(您的代码显示了这一点,但文本与之相矛盾)。
double result = (150.0/100.0)
一个或两个数字应该是=右侧的浮点数/双精度数
【讨论】:
如果您只使用像 150 和 100 这样的文字值,C# 会将它们视为整数,并且整数数学总是“向下舍入”。您可以为浮点数添加一个标志,如“f”或为十进制添加“m”,以不获取整数数学。所以例如result = 150m/100m 会给你一个不同于result = 150/100 的答案。
【讨论】: