fxDreema

    • Register
    • Login
    • Search
    • Back to the main page
    • Categories
    • Recent
    • Tags
    • Popular
    • Search

    NormalizeDouble not working... long flating numbers issue...

    Bug Reports
    3
    5
    5416
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TecnoTrader
      TecnoTrader last edited by TecnoTrader

      Hello everyone, I'm asking for help because of this issue that manifested lately that is getting me crazy.
      Since the last update of fxDreema my EA started to show long numbers in the info panel, like 9.140000000000001

      I searched the forums and tried all the solutions mentioned like using using the function NormalizeDouble() but that only worked with some cases so I could NOT resolve this issue. My variables are in fact of the type double.

      I found several references in the forums about fxDreemas' Admin mentioning something about 'strict mode' and the issues related to printing long numbers, we are talking about post from 2015 so this seems and old issue.

      I created a shared example to show the problem, even with nomalized doubles this long numbers appear.
      Shared project: NormalizeDouble example mt4

      Any help would be much appreciated! 🙏

      0_1507667863548_NormalizeDouble bug1.PNG 0_1507667951339_NormalizeDouble bug2.PNG

      Related forum posts:

      • Draw indicator value, Nov, 2015
      • self updating/refreshing grid, Dec, 2015

      @fxDreema said in self updating/refreshing grid, compare two groups of trades:

      Yes, there was some error. As you probably know, I was experimenting with "strict" mode, but with it some problems appeared. Then I disabled it and these errors appeared. Now I fixed those errors, I guess, and currently I disabled this "strict" mode, mostly because of some issues when printing numbers. Are you sure about the restore? Note that when I restore some project, it's only data about when blocks are located and their settings. The actual code that is generated does not come with the project itself.

      @fxDreema said in self updating/refreshing grid, compare two groups of trades:

      I don't know what to tell you, as I also have troubles with this 🙂 Floating numbers are crazy in C/C++, and MQL4 comes from there. NormalizeDouble() is used to cut digits, but sometimes it doesn't work as expected. For displaying data DoubleToString() is used, the input here is a number and the output is string (text).

      I discovered that in strict mode if I try to get the Equity, which is some floating number, the result can be some number followed by many random numbers. And if I apply NormalizeDouble to the 2nd digit for example, it still does not cut the number to the 2nd number, there is something like 000001 left at the end. Then if I put (double) in front it appears that everything is ok. But the whole thing becomes something like:

      (double)(NormalizeDouble(AccountEquity(), 2))
      

      ... only to cut some floating number to the 2nd digit. And I'm still not sure that the number is actually cut or I am only hiding the truth 🙂

      This is for strict mode. Currently I disabled it, because... because. With strict mode people are complaining more from weird looking numbers coming out of "Comment" 🙂 While in normal mode at least numbers are outputted in the way they should be.

      1 Reply Last reply Reply Quote 0
      • M
        miro1360 last edited by miro1360

        try change your way of normalizing ... be sure you give it into "Text (code input)" ..

        0_1507671676181_upload-d09d1262-6251-4e6e-a2ec-93c1d2d8e09f

        if it is not working in this field, than problem can be in metatrader itself 😄

        Between trading and gambling is a very small gap, be careful.

        1 Reply Last reply Reply Quote 0
        • TecnoTrader
          TecnoTrader last edited by

          Thank you so much @miro1360 with your help I found a temporary workaround.

          I tested:
          Value, numeric --------> NormalizeDouble(G2RealTimeProfit,2) ----> same issue ❌
          Text (code input) ----> NormalizeDouble(G2RealTimeProfit,2) ----> same issue ❌
          Text (code input) ----> DoubleToString(G2RealTimeProfit,2) -------> working ✅

          That will only convert the number at the moment of display, we still may need to normalize a variable in memory or that to be automatic. I hope we can find the root of this issue. In my opinion is not MQL but how fxDreema handles numeric datatypes.

          Thanks again for your help, any insight is much appreciated

          1 Reply Last reply Reply Quote 2
          • M
            miro1360 last edited by

            perfect, DoubleToString is good function 😉 ... I almost forget that one ...

            Between trading and gambling is a very small gap, be careful.

            1 Reply Last reply Reply Quote 0
            • P
              peringvar last edited by

              Hi I got problems with NormalizeDouble. I changed it to DoubleToString but i get the same issue.
              Sometimes the value I print on the chart come out with to many desimals. When not it works quite well.
              Are this a Fxdreema or mt4 problem?

              1 Reply Last reply Reply Quote 0
              • 1 / 1
              • First post
                Last post

              Online Users

              B
              A
              J
              D
              E

              18
              Online

              146.7k
              Users

              22.4k
              Topics

              122.6k
              Posts

              Powered by NodeBB Forums | Contributors