【发布时间】:2014-04-25 12:58:19
【问题描述】:
所以,我有点困惑。我的印象是这应该有效: 在这种情况下,a 和 b 都是整数(确切地说是计数器)。
由于 a / b 可能包含小数位,整数显然不起作用。 因此,我声明了一个新的 double 并在其中执行了这样的计算:
double texturefactor = ((a / b) * 10);
这不像我预期的那样工作,并且 a / b 的结果始终是我使用 int 执行计算来存储时得到的结果结果。 另一方面,这是可行的:
double calculate1 = a;
double calculate2 = b;
double texturefactor = ((calculate1 / calculate2) * 10);
几个可能很愚蠢的问题- 1. 我确信这应该可行——我知道在某些情况下 VS 会抱怨我试图隐式地从一种类型转换为另一种类型——这就是我想要做的!为什么不呢,我错过了什么吗? :) 2. 我应该只是将计数器 a 和 b 转换为 double 并省去转换的麻烦,还是那麻烦?
【问题讨论】:
-
试试
double texturefactor = (((double) a / b) * 10); -
您之前可能已经注意到“返回值”并不重要。它们也不能用于解决方法的“正确”重载 - 因此我们可以使用单个
Write方法,但必须使用ReadInt16、ReadInt32等。运算符/重载解析仅基于在操作数上,在您的情况下是int和int。