java - 为什么将 float 除以整数返回 0.0?

标签 java math division integer-division

因此,如果我有一个数字范围“0 - 1024”并且我想将它们带入“0 - 255”,那么数学将要求将输入除以输入的最大值(在这种情况下为 1024)这会给我一个介于 0.0 - 1.0 之间的数字。然后将其乘以目标范围 (255)。

这是我想做的事!

但由于某种原因在 Java 中(使用处理)它总是会返回一个值 0。

代码就这么简单

float scale;
scale = (n/1024) * 255;

但我只得到 0.0。我试过 double 和整数。一切都无济于事。为什么!?

最佳答案

因为你在做整数除法。

除以 double 或 float ,它会起作用:

double scale = ( n / 1024.0 ) * 255 ;

或者,如果你想要它作为一个 float ,

float scale = ( n / 1024.0f ) * 255 ;

关于java - 为什么将 float 除以整数返回 0.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779604/

相关文章:

java - 无法访问 MapReduce 的 reducer 类中的计数器

java - H2中使用Spring的列表类型字段

java - 从 Struts 1.2 迁移 -> Struts2 vs Spring-MVC(主要针对 Struts1.2 taglib 支持)

C++ double 不能等于两个 int 除法

java - 通过 JMeter 正则表达式解析 HTML

c# - 给定总数,确定一个值将进入其中的次数

algorithm - 不。从 1 到 n 的数字排列,其中 i >i+1 和 i-1

html - DIV 使用 JQuery 淡入滚动,但不会在每个像素上触发

actionscript-3 - Actionscript计算不带括号的错误除法

java - JavaCard 的数学库?