Weird behavior in Eclipse
I might sound incredible what I'm experiencing right now but I have this code along another operations.
double mues1 = 0;
mues1 = (Math.pow((ab/100),2)*tam);
Where ab=4, tam=400.
Thi开发者_开发技巧s should give .64, but the variable keeps being 0.0, and it only changes it's value if the operation is bigger than 1.
If I replace the math.pow with ^2, the variable becomes 800.0 no matter which value has 'ab'.
Just to make clear, I'm debugging the code so I know how the value is.
I have restarted eclipse and my computer and it didn't help.
Is ab and int? If so, you'll need to change ab/100 to (double)ab/100 or ab/100.0. Otherwise, it will perform integer division which truncate towards 0. In other words 4/100 = 0.
The problem is that the variable ab is an integer and you are performing integer division.
According to integer division, 4/100 = 0. To get the result 0.04, declare ab as a double.
FYI, the caret character in Java performs a bitwise xor, so you probably don't want to use that.
This is happening because you are dealing with int literals, the value of 4/100 = 0. You should try to do this using float literals 4.0/100.0.
When you try to do 4^100, you are doing a "bitwise exclusive or", as that is what ^ means in Java. This is not doing what you think it is, so do not do that.
You are suffering from float/double values being demoted to integer, so any 0.nn gets truncated to 0.
try this:
mues1 = (Math.pow(((double)ab/100),2)*(double)tam);
or just declare ab and tam as double
加载中,请稍侯......
精彩评论