因此,如果我有一个范围为‘0-1024’的数字,并且希望将其取为‘0-255’,那么数学将决定将输入除以输入的最大值(在这种情况下为1024),从而得出我的数字介于0.0-1.0之间。然后将其乘以目标范围(255)。
我要做什么!
但是由于Java中的某些原因(使用处理),它将始终返回值0。
该代码将像这样简单
float scale;
scale = (n/1024) * 255;
但是我只得到0.0。我已经尝试过两次和诠释。一切都无济于事。为什么!?
这是因为您要进行整数除法。
除以双精度数或浮点数,它将起作用:
double scale = ( n / 1024.0 ) * 255 ;
或者,如果您希望将其作为浮动对象,
float scale = ( n / 1024.0f ) * 255 ;
问题内容: 我对此很好奇: 使用Java进行评估时,会发生以下异常: 线程“主”中的异常java.lang.ArithmeticException:/在Foo.main(Foo.java:3)处为零 但是被评估为。 为什么会这样? 问题答案: 这是因为整数没有+/- Inf,NaN的值,并且不允许除以0,而浮点数确实具有这些特殊值。
问题内容: 为什么总是返回值0.0?我也想将其a格式化为00.00格式并转换为字符串吗? 问题答案: 因为转换为浮点数是在除法完成后发生的。你需要: 你应该可以使用以下格式进行格式化:
问题内容: 5年前关闭。 我必须将两个整数相除并得到一个浮点数作为我的代码: 我用调试器检查值 为什么结果为0.0?我应该怎么做才能获得正确的浮动? 问题答案: 当您将两个数相除时,将执行整数除法,在这种情况下,将导致22/64 =0。只有完成此操作后,您才能创建一个。和的表示是。如果要执行浮点除法,则应 在 除法 之前进行 强制转换:
有可能有一个返回整数或浮点的函数吗?如果可能的话,我想把这两个函数合二为一:
由于某些原因,这部分不起作用: 我将错误“无法将«类ocid»id«数据optr000000003701000000000000»转换为类型编号。(错误-1700)” 你知道为什么会这样吗?我想这是因为它不想让我把浮点和整数结合起来。如果这是原因,为什么?我该如何修复它?如果这不是问题,你认为是什么? 谢谢!
问题内容: 有人可以解释一下吗(直接来自文档-强调我的): math.ceil(x) 以浮点数形式 返回 x 的上限,最小 整 数值大于或等于x。 math.floor(x) 以浮点数形式 返回 x 的下限,即小于或等于x的最大 整 数值。 为什么会和回报花车当它们被定义应该算整数? 编辑: 好吧,这有一些很好的论据来说明为什么它们 应该 返回浮点数,而当@jcollado指出它们实际上 _确实_