• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.

Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Problem doing comparisons with fractions

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • pstrusi
    started a topic Problem doing comparisons with fractions

    Problem doing comparisons with fractions

    Hi Ninjas,

    This is simple but I still can't see why.

    I'm doing a very simple logic comparison, a double variable against a fraction. For example:

    Let's suppose a=0.5, then I do

    if ( a>0.4 && a<0.6 )
    {
    EnterLong(100000, "BUY");
    }

    under this way the code sends a BUY order, BUT if I do the same comparison like this:

    if ( a>4/10 && a<6/10 )
    {
    EnterLong(100000, "BUY");
    }

    The code does nothing. Why? and how can I solve it? Despite this problem is easy to solve writing directly, I use a lot fractions, so I´d like to know how.

    Thanks

  • Harry
    replied
    Originally posted by pstrusi View Post
    I found the solution. Obviously cause the type of variable.

    If I do this change, then it does work perfect

    if ( a>4.0/10.0 && a<6.0/10.0 )
    {
    EnterLong(100000, "BUY");
    }

    Correct. Also see the C# Reference for the division operator.

    http://msdn.microsoft.com/en-us/library/3b1ff23f.aspx

    "When you divide two integers, the result is always an integer. For example, the result of 7 / 3 is 2. To determine the remainder of 7 / 3, use the remainder operator (%). To obtain a quotient as a rational number or fraction, give the dividend or divisor type float or type double
    ."

    Sample results:

    7 / 3 = 2
    -7 / 3 = -2
    7 % 3 = 1
    7 / 3.0 = 2.33333333333333
    7.0 / 3 = 2.33333333333333
    8 / 5 = 1
    8 / -5 = -1
    8 % 5 = 3
    8 / 5.0 = 1.6
    8.0 / 5 = 1.6
    Last edited by Harry; 07-30-2013, 09:09 AM.

    Leave a comment:


  • pstrusi
    replied
    I found the solution. Obviously cause the type of variable.

    If I do this change, then it does work perfect

    if ( a>4.0/10.0 && a<6.0/10.0 )
    {
    EnterLong(100000, "BUY");
    }

    Leave a comment:

Latest Posts

Collapse

Topics Statistics Last Post
Started by ATMtrader0001, Today, 01:48 PM
1 response
6 views
0 likes
Last Post NinjaTrader_PaulH  
Started by RandanAL, Yesterday, 05:13 PM
1 response
10 views
0 likes
Last Post NinjaTrader_Kate  
Started by JustinCross, Today, 02:11 PM
1 response
8 views
0 likes
Last Post NinjaTrader_Tyler  
Started by Uwe1981, Today, 03:41 AM
3 responses
22 views
0 likes
Last Post NinjaTrader_Kate  
Started by maxie, Today, 11:43 AM
1 response
9 views
0 likes
Last Post NinjaTrader_Monica  
Working...
X