🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #231112

Re: Problem z właściwym sumowaniem

#231112
From: tomek
Date: Tue, 14 Jul 2015 07:56
45 lines
2503 bytes
Użytkownik "Borys Pogoreło" <borys@pl.edu.leszno> napisał w wiadomości 
news:12ptonkwkgs46.11ond3800czpd$.dlg@40tude.net...
> Dnia Mon, 13 Jul 2015 12:11:53 +0200, tomek napisał(a):
>
>> SELECT [...]
>> CAST(100 * kwota_w_zl AS SIGNED) AS kwota_w_gr,
>> [...]
>>
>> Wszystkie operacje wykonuję na groszach.
>> Dopiero na samym końcu gdy wynik idzie do wyświetlania zaminiany jest na
>> stringa

> A jak sobie radzisz z mnożeniem? Bo na 32-bitowych maszynach PHP_INT_MAX
> wcale taki duży nie jest. A wynik mnożenia większych liczb może dość łatwo
> przekroczyć 2147483647, jeśli oba czynniki masz pomnożone przez 100.

PHP to nie C czy inny język.
Jak się pomnoży np
    $x = 0.23 * $kwota_w_groszach
to i tak to będzie FLOAT a nie INTEGER.

Funkcja "round" też zwraca float.

Chodzi mi oto aby nie było takich numerów jak poniżej
---------------------------------------------------------------
$NL = "\n";

$x1 = 0.2;
$x2 = 0.12;
$x3 = 0.08;

// teoretycznie to samo ale daje inne wyniki
$x = $x1 - $x2 - $x3;
echo $x.$NL;
$x = -$x2 - $x3 + $x1;
echo $x.$NL;

--------------------------------------------------------------------
1.3877787807814E-17
0


Pozdrawiam
Tomek 
Technical Details
Message-ID: <55a4c0bf$0$8368$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!feeder2.ecngs.de!ecngs!feeder.ecngs.de!81.171.118.64.MISMATCH!peer04.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> <55a38ee3$0$2188$65785112@news.neostrada.pl> <12ptonkwkgs46.11ond3800czpd$.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!feeder2.ecngs.de!ecngs!feeder.ecngs.de!81.171.118.64.MISMATCH!peer04.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "tomek" <skowtom@wp.xxx.pl>
Newsgroups: pl.comp.lang.php
References: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> <55a38ee3$0$2188$65785112@news.neostrada.pl> <12ptonkwkgs46.11ond3800czpd$.dlg@40tude.net>
Subject: Re: Problem z właściwym sumowaniem
Date: Tue, 14 Jul 2015 09:56:55 +0200
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
Lines: 47
Message-ID: <55a4c0bf$0$8368$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.3.208.121
X-Trace: 1436860607 unt-rea-b-01.news.neostrada.pl 8368 83.3.208.121:2021
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 2112
X-Received-Body-CRC: 3520209436
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit