- **Tips**
(*http://www.ninjatrader.com/support/forum/forumdisplay.php?f=31*)

- - **Floating-Point Arithmetic**
(*http://www.ninjatrader.com/support/forum/showthread.php?t=3929*)

Floating-Point ArithmeticApplies to NinjaTrader 7 and NinjaTrader 8Some common problems that you may encounter when comparing different double values are the caveats involved with floating-point arithmetic. Because of the way computers store floating-point numbers, under certain conditions your value will be an approximate of the actual decimal number you wanted. If this situation arises in your code, your comparison logic may not execute as you had intended even if your logic was mathematically sound on paper. To address this issue you will need to use a range comparison that takes into account the slight differences in the least significant digits of the floats. For example, under normal mathematics we would assume double x is equivalent to double y. Code:
`double x = 90.10;` Code:
`double x = 90.1` Code:
`bool c = (x == y);` Code:
`x equals y: False` Code:
`if (x == y)` Code:
`if (Math.Abs(x – y) < 0.0001)` Alternatively, you can check the difference between the two variables against the double.Epsilon field. double.Epsilon field represents the smallest possible double value. Code:
`if (x – y < double.Epsilon)` Code:
`double newPriceRange = Close[0] - Open[0];` For a more formal analysis of floating-point arithmetic, there are many resources online: http://docs.sun.com/source/806-3568/ncg_goldberg.html http://www.codeproject.com/dotnet/Ex...int1.asp#terms |

All times are GMT -6. The time now is 10:33 PM. |