When I run the following code:
public int[] finalResult = new int[dimension];
public float[] calculatedValue = new float[dimension];
.....
.....
finalResult[i] = (int) Math.Floor(calculatedValue[i]);
Console.WriteLine( "calculated:" + calculatedValue[i]
+ " final:" + finalResult[i]
+ " test: " +(int) Math.Floor(calculatedValue[i]));
The output is:
calculated:-0.02043936 final:0 test:-1
Why is “final” different from “test” when they are generated from exactly the same code? Which one is wrong, and why?
even simpler, and smaller fragment
finalResult[i]=(int)Math.Floor(-3.0002);
Console.WriteLine( "final: "+ finalResult[i]+ " test:" +(int)Math.Floor(-3.0002));
output
final:0 test:-4
The remaining of the code is irrevelant as below proves
I tried the following lastly,
public int[] junkArray = new int[dimension];
junkArray[i]=(int)Math.Floor(-3.0002); //Junk Array is only assigned here in whole code
Console.WriteLine( "final: "+ (int) junkArray[i]+ " test:" +(int)Math.Floor(-3.0002));
I get output as final:0 test:-4
If I test the code
unsuprisingly I get the output
So, something else is wrong with your code.