You are here: Re: [PHP] Help. Floats turning into really small numbers? x.xxxxxxxxxxxxxxxxxxxxxxE-xx - Narrowed it down! « PHP « IT news, forums, messages
Re: [PHP] Help. Floats turning into really small numbers? x.xxxxxxxxxxxxxxxxxxxxxxE-xx - Narrowed it down!

Posted by Richard Lynch on 04/05/05 03:04

Floats are NEVER going to be coming out "even" reliably.

You'll have to check if the difference is less than X for whatever number
X you like.

Or you can look at something like BC_MATH where precision can be carried
out as far as you like...

But what you are seeing is to be expected.

That's just the way computers work, basically.

On Mon, April 4, 2005 5:07 pm, Anthony Tippett said:
> Ok i've narrowed it down a little bit but still can't figure it out..
>
> Here's the code and what I get for the output. Does anyone know what's
> going on? Can someone else run it on their computer and see if they get
> the same results?
> <?php
>
> $a = "17.00" * "1";
> $a+= "1.10" * "1";
> $a+= "0.32" * "1";
> $a+= "0.07" * "1";
>
> print $a."<br>"; // 18.49
>
> var_dump($a); // float(18.49)
> var_dump($a-18.49); // float(3.5527136788005E-15)
> ?>
>
>
> Anthony Tippett wrote:
>> I'm having trouble figuring out why subtraction of two floats are giving
>> me a very small number. I'm thinking it has something to do with the
>> internals of type casting, but i'm not sure. If anyone has seen this or
>> can give me some suggestions, please.
>>
>> I have 2 variables that go through a while loop and are
>> added/subtracted/ multipled. InvAmt and InvPay are shown as
>> floats but when they are subtracted, they give me a really small
>> number
>>
>> // code
>> var_dump($InvAmt);
>> var_dump($InvPay);
>> var_dump($InvAmt-$InvPay);
>>
>> // output
>> float(18.49)
>> float(18.49)
>> float(2.1316282072803E-14)
>>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


--
Like Music?
http://l-i-e.com/artists.htm

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация