【发布时间】:2014-02-04 18:05:31
【问题描述】:
我有以下代码行:
int destHeight = (int)(sourceHeight * percent);
我在将图像裁剪为缩略图同时保持纵横比的过程的一部分中使用它。
问题概述如下:
percent = 0.08680555,
sourceHeight = 576,
计算结果为50.0,但是当分配给destHeight作为int时,它变为49。
我该如何解决这个问题?
【问题讨论】:
-
在我的计算器上是 49.9999968。或 49 转换为 int
-
同意@Rob,0.08680555和576的乘积是49.9999968。您是如何确定结果为 50.0 的?
-
@chux Visual Studio。我在计算中设置了一个断点,显然
sourceHeight * percent产生了一个Single。这就是为什么它完全像50.0一样出来。 -
@kehrk 谢谢。建议VS不提供exact值,而是四舍五入的结果。在这种情况下,对于我们的目的来说有点太圆了。
标签: math casting int percentage