Java float 数学错误?

标签 java android math floating-point

我正在尝试计算图像的纵横比:

Log.d("img.width:", String.valueOf(img.getIntrinsicWidth()));
Log.d("img.height:", String.valueOf(img.getIntrinsicHeight()));
float aspect = ((float)img.getIntrinsicWidth()) / ((float)img.getIntrinsicWidth());
Log.d("aspect:", String.valueOf(aspect));

但是这会产生意想不到的结果:

img.width:   297
img.height:  167
aspect:      1.0

这似乎有一个简单的答案,但我想不通。

最佳答案

您将宽度除以宽度。尝试用高度替换其中之一。

关于Java float 数学错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9339106/

相关文章:

java - 出现错误: Execution failed for task app:transformClassesWithMultidexlistForDebug

Java:如何将 List<T> 中的对象添加到 Map(键:Enum,值 List<T>)

java - Android Studio - build.gradle 未捕获翻译错误 ExecutionException OutOfMemory 中的问题

python - 如何检验x是否是万能集的成员?

math - 如果两个 n 位数字相乘,那么结果将是最大的位长

java - 在多线程环境中摆脱标志/枚举的设计模式

java - 在 Post 请求之前将字节数组转换为 C# 字节数组

Android TextView 没有正确包装它的文本

android - 当子项单击时更新 ListView 项目的可绘制状态

c++ - 仅需要 k 位时的快速求幂 - 续