wp_send_json* functions do a weird float values conversion












0















I have a method that does simple math and returns a float value. I use this value as an argument for wp_send_json() function. Values are converted in a way that I don't understand.



$x = $calculator->getValue(); // Returns 3.02
$y = 3.02;

gettype($x); // Returns double
gettype($y); // Returns bouble

wp_send_json_success(%x); // prints {"success":false,"data":3.0199999999999996}
wp_send_json_success($y); // prints {"success":false,"data":3.02}


I don't' understand it at all. Both $x and $y values are exactly the same in terms of values and types. So why the outputs produced by wp_send_json_success are different?





Update:



Now I'm even more confused



$x === $y; // returns false
$x == $y; // returns false too!


How is it possible? When I do var_dump I can see that the values are the same.










share|improve this question



























    0















    I have a method that does simple math and returns a float value. I use this value as an argument for wp_send_json() function. Values are converted in a way that I don't understand.



    $x = $calculator->getValue(); // Returns 3.02
    $y = 3.02;

    gettype($x); // Returns double
    gettype($y); // Returns bouble

    wp_send_json_success(%x); // prints {"success":false,"data":3.0199999999999996}
    wp_send_json_success($y); // prints {"success":false,"data":3.02}


    I don't' understand it at all. Both $x and $y values are exactly the same in terms of values and types. So why the outputs produced by wp_send_json_success are different?





    Update:



    Now I'm even more confused



    $x === $y; // returns false
    $x == $y; // returns false too!


    How is it possible? When I do var_dump I can see that the values are the same.










    share|improve this question

























      0












      0








      0








      I have a method that does simple math and returns a float value. I use this value as an argument for wp_send_json() function. Values are converted in a way that I don't understand.



      $x = $calculator->getValue(); // Returns 3.02
      $y = 3.02;

      gettype($x); // Returns double
      gettype($y); // Returns bouble

      wp_send_json_success(%x); // prints {"success":false,"data":3.0199999999999996}
      wp_send_json_success($y); // prints {"success":false,"data":3.02}


      I don't' understand it at all. Both $x and $y values are exactly the same in terms of values and types. So why the outputs produced by wp_send_json_success are different?





      Update:



      Now I'm even more confused



      $x === $y; // returns false
      $x == $y; // returns false too!


      How is it possible? When I do var_dump I can see that the values are the same.










      share|improve this question














      I have a method that does simple math and returns a float value. I use this value as an argument for wp_send_json() function. Values are converted in a way that I don't understand.



      $x = $calculator->getValue(); // Returns 3.02
      $y = 3.02;

      gettype($x); // Returns double
      gettype($y); // Returns bouble

      wp_send_json_success(%x); // prints {"success":false,"data":3.0199999999999996}
      wp_send_json_success($y); // prints {"success":false,"data":3.02}


      I don't' understand it at all. Both $x and $y values are exactly the same in terms of values and types. So why the outputs produced by wp_send_json_success are different?





      Update:



      Now I'm even more confused



      $x === $y; // returns false
      $x == $y; // returns false too!


      How is it possible? When I do var_dump I can see that the values are the same.







      ajax wordpress






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 2 at 16:43









      wubewube

      77211




      77211
























          1 Answer
          1






          active

          oldest

          votes


















          0














          It has nothing to do with wp_send_json(). In my code the 3.02 value returned by the $calculator->getValue() method is a result of a 10 - 6.98 equation. It returns 3.0199999999999996 but when I var_dump it then the result on the screen is rounded to 3.02. That's why $x == $y returns false.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010048%2fwp-send-json-functions-do-a-weird-float-values-conversion%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            It has nothing to do with wp_send_json(). In my code the 3.02 value returned by the $calculator->getValue() method is a result of a 10 - 6.98 equation. It returns 3.0199999999999996 but when I var_dump it then the result on the screen is rounded to 3.02. That's why $x == $y returns false.






            share|improve this answer




























              0














              It has nothing to do with wp_send_json(). In my code the 3.02 value returned by the $calculator->getValue() method is a result of a 10 - 6.98 equation. It returns 3.0199999999999996 but when I var_dump it then the result on the screen is rounded to 3.02. That's why $x == $y returns false.






              share|improve this answer


























                0












                0








                0







                It has nothing to do with wp_send_json(). In my code the 3.02 value returned by the $calculator->getValue() method is a result of a 10 - 6.98 equation. It returns 3.0199999999999996 but when I var_dump it then the result on the screen is rounded to 3.02. That's why $x == $y returns false.






                share|improve this answer













                It has nothing to do with wp_send_json(). In my code the 3.02 value returned by the $calculator->getValue() method is a result of a 10 - 6.98 equation. It returns 3.0199999999999996 but when I var_dump it then the result on the screen is rounded to 3.02. That's why $x == $y returns false.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 2 at 17:39









                wubewube

                77211




                77211
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010048%2fwp-send-json-functions-do-a-weird-float-values-conversion%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Mossoró

                    Error while reading .h5 file using the rhdf5 package in R

                    Pushsharp Apns notification error: 'InvalidToken'