Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. In C#: double d = 0.4 - 1.2; What is d?

In C#: double d = 0.4 - 1.2; What is d?

Scheduled Pinned Locked Moved The Lounge
questioncsharp
51 Posts 24 Posters 0 Views 1 Watching
  • 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.
  • realJSOPR realJSOP

    No, you should be a programmer and write a function called "AlmostEqual" which will compare two floating point numbers asstrings out to a programmer-specified number of positions to the right of the decimal point. I had to do that when I was programming in Pascal over 15 years ago. ------- signature starts "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 "You won't like me when I'm angry..." - Dr. Bruce Banner Please review the Legal Disclaimer in my bio. ------- signature ends

    R Offline
    R Offline
    Roger Wright
    wrote on last edited by
    #40

    John Simmons / outlaw programmer wrote: AlmostEqual I used a similar approach in Pascal, but the function took floating point inputs along with an acceptable error value, returning false if the difference between the two input values was greater than the error value. Handy tool!

    "Welcome to Arizona!
    Drive Nice - We're Armed..."
    - Proposed Sign at CA/AZ Border

    1 Reply Last reply
    0
    • M Maxwell Chen

      Ooooops! I used this: double d = 0.4F - 1.2F; And the result is wrong (d = -0.800000041723251) because casting float to double. This time I use this with VC++ 6: double d = 0.4 - 1.2; And I got the output message for printf("d = %.15f\n", d); is d = -0.800000000000000 But I still got negative result ("No") in the comparison:

      if(d == -0.8)
      std::cout << "Yes\n";
      else
      std::cout << "No\n";

      BuggyMax

      B Offline
      B Offline
      Brit
      wrote on last edited by
      #41

      Maybe you need more decimal places. What I did was: char buffer[100]; sprintf( buffer, "%20.20f", d ); ------------------------------------------ The ousted but stubbornly non-dead leader reportedly released an audiotape this weekend, ending by calling on Iraqis to, quote, "resist the occupation in any way you can, from writing on walls, to boycotting, to demonstrating and taking up arms." adding, "you know, pretty much anything I used to kill you for."

      M 1 Reply Last reply
      0
      • E Eddie Velasquez

        Stephane Rodriguez. wrote: (just before they rebranded the JVM into the CLR and sold it like a new development platform What a pile of steamy, stinkin' sh... rubish! This is nothing more than your typical anti-microsoft rant, come on give it break! Provide some useful feedback or abstain for crying out loud! :mad:


        The nice thing about C++ is that only your friends can handle your private parts.

        S Offline
        S Offline
        Stephane Rodriguez
        wrote on last edited by
        #42

        You have to prove I am wrong. Watch rotor, compare it to the Sun JVM. Amazingly similar isn't it? Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

        E 1 Reply Last reply
        0
        • E Eco Jones

          Stephane Rodriguez. wrote: blah, blah, blah, MS EVIL, blah, blah Here's an e-quarter () - call someone who cares. Then you can use the change to buy a notebook where you record the amount of time you spend whining and complaining about Microsoft and the amount of time you spend actually trying to improve the situation and do a comparitive study and post it on slashdot and make a BIGGER frigging pretentious image in your signature and form anti-MS demonstrations and die happy knowing that you haven't really done a single worthwhile thing in your whole miserable existence other than slightly annoy a whole bunch of people. Worst-case scenario, of course. Eco

          S Offline
          S Offline
          Stephane Rodriguez
          wrote on last edited by
          #43

          Eco Jones wrote: miserable existence ??? I have a full-time job, and I have a full-time life. I also enjoy programming on personal projects using a bunch of technologies and languages. Currently I am being caught in text-rendering and image effects à la Longhorn. Surprised? Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

          E 1 Reply Last reply
          0
          • S Stephane Rodriguez

            You have to prove I am wrong. Watch rotor, compare it to the Sun JVM. Amazingly similar isn't it? Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

            E Offline
            E Offline
            Eddie Velasquez
            wrote on last edited by
            #44

            I've never checked the source code for Sun's JVM and have barely investigated Rotor. And... Rotor is NOT the same as .NET's CLR.


            The nice thing about C++ is that only your friends can handle your private parts.

            S 1 Reply Last reply
            0
            • S Stephane Rodriguez

              Eco Jones wrote: miserable existence ??? I have a full-time job, and I have a full-time life. I also enjoy programming on personal projects using a bunch of technologies and languages. Currently I am being caught in text-rendering and image effects à la Longhorn. Surprised? Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

              E Offline
              E Offline
              Eco Jones
              wrote on last edited by
              #45

              Stephane Rodriguez. wrote: Surprised? Yes, with all this talk of programming, I thought you were a rodeo clown. http://dictionary.reference.com/search?q=sarcasm[^] Reading your resume was really boring. If you really want to defend your existence to me or someone else who will almost certainly pay attention and truly cares about what you have to say, next time pass on some hilarious anecdotes of your life and maybe end it off with some kind of inspirational song. http://dictionary.reference.com/search?q=sarcasm[^]

              S 1 Reply Last reply
              0
              • E Eddie Velasquez

                I've never checked the source code for Sun's JVM and have barely investigated Rotor. And... Rotor is NOT the same as .NET's CLR.


                The nice thing about C++ is that only your friends can handle your private parts.

                S Offline
                S Offline
                Stephane Rodriguez
                wrote on last edited by
                #46

                Yes rotor and the the .NET CLR have not the same baseline. But it's 99% the same. In fact rotor is only the JVM, while the actual CLR also includes winforms, asp.net, ... You've got to read Chris Brumme's weblog (CLR guy) and the amount of work his team is doing to have Rotor face to face with the CLR releases. Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

                E 1 Reply Last reply
                0
                • S Stephane Rodriguez

                  Yes rotor and the the .NET CLR have not the same baseline. But it's 99% the same. In fact rotor is only the JVM, while the actual CLR also includes winforms, asp.net, ... You've got to read Chris Brumme's weblog (CLR guy) and the amount of work his team is doing to have Rotor face to face with the CLR releases. Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

                  E Offline
                  E Offline
                  Eddie Velasquez
                  wrote on last edited by
                  #47

                  Stephane Rodriguez. wrote: You've got to read Chris Brumme's weblog (CLR guy) and the amount of work his team is doing to have Rotor face to face with the CLR releases. I don't know where you read that Rotor is the JVM, but Chris Brumme's weblog[^] states: "I say ‘might’ because I’ve never actually looked at the Rotor sources. I’m just relying on the fact that they are a pretty faithful of a cleansed snapshot of our desktop CLR sources"


                  The nice thing about C++ is that only your friends can handle your private parts.

                  1 Reply Last reply
                  0
                  • E Eco Jones

                    Stephane Rodriguez. wrote: Surprised? Yes, with all this talk of programming, I thought you were a rodeo clown. http://dictionary.reference.com/search?q=sarcasm[^] Reading your resume was really boring. If you really want to defend your existence to me or someone else who will almost certainly pay attention and truly cares about what you have to say, next time pass on some hilarious anecdotes of your life and maybe end it off with some kind of inspirational song. http://dictionary.reference.com/search?q=sarcasm[^]

                    S Offline
                    S Offline
                    Stephane Rodriguez
                    wrote on last edited by
                    #48

                    What a jerk. Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

                    E 1 Reply Last reply
                    0
                    • S Stephane Rodriguez

                      What a jerk. Taking advantage of InternetExplorer to steal user's name and password. Taking advantage of InternetExplorer to steal user's clipboard.

                      E Offline
                      E Offline
                      Eco Jones
                      wrote on last edited by
                      #49

                      I win!

                      1 Reply Last reply
                      0
                      • B Brit

                        Maybe you need more decimal places. What I did was: char buffer[100]; sprintf( buffer, "%20.20f", d ); ------------------------------------------ The ousted but stubbornly non-dead leader reportedly released an audiotape this weekend, ending by calling on Iraqis to, quote, "resist the occupation in any way you can, from writing on walls, to boycotting, to demonstrating and taking up arms." adding, "you know, pretty much anything I used to kill you for."

                        M Offline
                        M Offline
                        Maxwell Chen
                        wrote on last edited by
                        #50

                        Brit wrote: more decimal places Brit wrote: sprintf( buffer, "%20.20f", d ); But according to MSDN doc, the precision is 15 digits. "%.20f" is too many!

                        Microsoft Specific —>

                        The double type contains 64 bits: 1 for sign, 11 for the exponent,
                        and 52 for the mantissa.
                        Its range is +/–1.7E308 with at least 15 digits of precision.

                        BuggyMax

                        B 1 Reply Last reply
                        0
                        • M Maxwell Chen

                          Brit wrote: more decimal places Brit wrote: sprintf( buffer, "%20.20f", d ); But according to MSDN doc, the precision is 15 digits. "%.20f" is too many!

                          Microsoft Specific —>

                          The double type contains 64 bits: 1 for sign, 11 for the exponent,
                          and 52 for the mantissa.
                          Its range is +/–1.7E308 with at least 15 digits of precision.

                          BuggyMax

                          B Offline
                          B Offline
                          Brit
                          wrote on last edited by
                          #51

                          BuggyMax wrote: But according to MSDN doc, the precision is 15 digits. "%.20f" is too many! Well, yes, 20 is too many. But, read what MS says: "Its range is +/–1.7E308 with at least 15 digits of precision." Remember, we are storing the number as bits (i.e. base 2). When it says, "at least 15 digits" - thats a base 10 description. It says at least 15 digits, this means that in some cases it can store more, but it sounds strange to say something like "15.6 digits of precision". Note that 2^52 = 4.5*10^15, which is slightly more than 15 digits of precision, but not quite 16 digits of precision. Along the same idea, how many significant digits would you say that a char has? It stores 2^8 values, or 0-255. You might say that it stores at least two digits, but sometimes three. Again, the base-2 to base-10 conversion messes up our typical convention of "significant digits". ------------------------------------------ The ousted but stubbornly non-dead leader reportedly released an audiotape this weekend, ending by calling on Iraqis to, quote, "resist the occupation in any way you can, from writing on walls, to boycotting, to demonstrating and taking up arms." adding, "you know, pretty much anything I used to kill you for."

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups