Java 用浮点数乘以我的a数?
我的代码面临的问题是,当我将一个数字乘以一个浮点数时,if语句不起作用。比如Java 用浮点数乘以我的a数?,java,eclipse,floating-point,int,multiplication,Java,Eclipse,Floating Point,Int,Multiplication,我的代码面临的问题是,当我将一个数字乘以一个浮点数时,if语句不起作用。比如 int x; float xRatio = 1.0; if ( x > 600 * xRatio && x < 1320 * xRatio) { // Do something (Draw on canvas for android) } 它要么打印0要么打印NaN 我不明白为什么if语句不起作用,因为我在这里使用它时它就起作用了
int x;
float xRatio = 1.0;
if ( x > 600 * xRatio && x < 1320 * xRatio) {
// Do something (Draw on canvas for android)
}
它要么打印0
要么打印NaN
我不明白为什么if语句不起作用,因为我在这里使用它时它就起作用了
if (x > 100 * xRatio && x < 599 * xRatio) {
// Do something
}
我试过了,它正在工作,只需更改
float xRatio=1.0代码>到<代码>浮动比率=1.0f代码>基本上,您应该避免对不同类型进行比较,尤其是在涉及整型和浮点型时
然而,这并不总是可能的。如果在比较数字时需要更通用的解决方案,请使用带有BigDecimal的包装器方法:
对于您的代码来说,这当然是太多了。float xRatio=1.0代码>应为浮动比率=1.0f代码>这里的“x”值是多少。@MarkoTopolnik是的,这应该是一个编译错误。我认为op没有正确显示代码是的,这表明op没有显示导致他出现问题的正确代码。@dizazta你能用正确的代码编辑你的问题吗?你的代码和你的问题不匹配这是一个相当空洞的答案。如果没有f
,它就不会编译。OP的投诉完全不同,因此显然困扰他的不是f
。引自问题:它打印0或NaN。
虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,只有链接的答案可能会无效。你说得对。我延长我的回答。
if (x > 100 * xRatio && x < 599 * xRatio) {
// Do something
}
Point size = new Point();
this.getWindowManager().getDefaultDisplay.getRealSize(size);
double width = size.x;
float xRatio = (float) width/1920;
x+= 20;
canvas.drawBitmap(bitmap, x, 0, null);