When converting a float variable to int in PHP, the result is wrong!

Source: Internet
Author: User

The first example:

<?php     $money = +;     $rate = 1.15;     $result = $money * $rate;          Var_dump (Intval ($result));     Var_dump ($result);? >

The output is:

Int (114)
Float (115)

  

Why does this phenomenon occur???

In fact, the PHP float is a weakly typed variable, and when the operation is performed, if the value of the participating operation has a float, then the resulting result is also a float type;

As above: Originally obtained 115, but, actually stored is 149.9999999999 ...

This time, if you cast him to an integer, then the decimal point will be lost!!!

So how to avoid the problem of this precision???

To avoid this problem, it is very simple, as long as the operation of the process, the number of parameter operations with integers instead, it is OK;

<?php     $money = +;     $rate =;     $result = $money * $rate/100;          Var_dump (Intval ($result));     Var_dump ($result);? >

  

The output is:

Int (115)
Int (115)

When converting a float variable to int in PHP, the result is wrong!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.