Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4444

Re: var_dump(8.7 <= 8.7) / false?

Path csiph.com!weretis.net!feeder4.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From "Christoph M. Becker" <cmbecker69@arcor.de>
Newsgroups de.comp.lang.php
Subject Re: var_dump(8.7 <= 8.7) / false?
Date Sat, 17 Nov 2018 23:49:16 +0100
Organization solani.org
Lines 54
Message-ID <psq5t8$4an$1@solani.org> (permalink)
References <61959674.20181115012304@gmx.net> <g54o42FdnvgU1@mid.individual.net> <g54o8cFdnvgU2@mid.individual.net> <06371490.20181115143113@gmx.net> <psjtkk$rud$1@solani.org> <4310540394.20181115155258@gmx.net> <psk79f$36s$1@solani.org> <1652878720.20181115212444@gmx.net> <psmhid$k0q$1@solani.org> <958057513.20181116212645@gmx.net>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
X-Trace solani.org 1542494952 4439 127.0.0.43 (17 Nov 2018 22:49:12 GMT)
X-Complaints-To abuse@news.solani.org
NNTP-Posting-Date Sat, 17 Nov 2018 22:49:12 +0000 (UTC)
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0
In-Reply-To <958057513.20181116212645@gmx.net>
X-User-ID eJwFwYkBwCAIA8CV5AnKOA2a/UfoHaKsZmehEoIeBg5dj6/X1fR+5MkoJX2tUBfpYTnH2oI/JT4Q+w==
Content-Language de-DE
Cancel-Lock sha1:R2pi7j1Blztkid8Trbn/rU2T7x4=
Xref csiph.com de.comp.lang.php:4444

Show key headers only | View raw


Am 16.11.2018 um 21:26 schrieb Stefan Mayer:

> Christoph M. Becker am Freitag, 16. November 2018 (14:43):
> 
>> * Man könnte hier auf die (string) Casts verzichten. Die Wandlung nimmt
>> PHP ohnehin automatisch vor.
> 
> Wenn ich das im PHP-Quelltext selbst verifizieren möchte, wo muss ich da
> schauen? Wo finde ich den auf github.com/php die entsprechende Stelle?

Ausgehend vom Parameter-Parsing von bccomp()[1], kommt man über
zend_parse_arg_str()[2] zu zend_parse_arg_str_weak()[3] wo alles was
sich irgendwie in eine Zeichenkette konvertieren lässt, eben umgewandelt
wird (und alles andere einen Fehler ergibt).

> Nächster Einschlag:
> 
> Rauskommen sollen Gleitkommazahlen, damit man die z.B. number_format behandeln
> kann.

Hm, wenn du zwischenzeitlich doch Gleitkommazahlen haben möchtest, dann
erscheint mir die BCMath-Lösung fraglich, und du fährst mit der Addition
des halben Intervalls wie von Claus vorgeschlagen[4], oder der
Integer-Schleife wie von Peter vorgeschlagen[5], vermutlich besser. Ich
frage mich allerdings, ob du number_format() wirklich brauchst. Ein
wenig Zeichenkettenmanipulation könnte es auch tun (z.B. wenn du nur den
Dezimalpunkt in ein -komma ändern willst).

>> * Man könnte automatisierte Tests schreiben. Sollte sich doch ein Fehler
>> in der Funktion finden, dann kann man diesen korrigieren, und die Tests
>> zeigen dann, ob alles was vorher funktioniert hat noch immer
>> funktioniert. Und natürlich für den Fehler gleich einen passenden Test
>> ergänzen.
> 
> Das hört sich gut an. Weiß aber grad nicht wie genau.

Siehe z.B. <https://phpunit.de/>.

Noch der Vollständigkeit halber erwähnen möchte ich die range() Funktion
von PHP, die eigentlich so ziemlich genau das macht wie dein erster
Ansatz, und auch das gleiche Problem bezüglich Gleitkommazahlen hat.
Immerhin meldet diese aber zumindest in aktuellen PHP-Versionen einen
Fehler, wenn es zu solchen Gleitkommaproblemen kommt ("step exceeds the
specified range").

[1]
<https://github.com/php/php-src/blob/php-7.3.0RC5/ext/bcmath/bcmath.c#L517-L518>
[2] <https://github.com/php/php-src/blob/php-7.3.0RC5/Zend/zend_API.h#L1187>
[3] <https://github.com/php/php-src/blob/php-7.3.0RC5/Zend/zend_API.c#L514>
[4] <news:g55shjFliudU1@mid.individual.net>
[5] <news:slrnpv0sho.s8s.hjp-usenet3@hrunkner.hjp.at>

-- 
Christoph M. Becker

Back to de.comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 01:23 +0100
  Re: var_dump(8.7 <= 8.7) / false? Arno Welzel <usenet@arnowelzel.de> - 2018-11-15 09:12 +0100
    Re: var_dump(8.7 <= 8.7) / false? Arno Welzel <usenet@arnowelzel.de> - 2018-11-15 09:15 +0100
      Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 14:31 +0100
        Re: var_dump(8.7 <= 8.7) / false? "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-11-15 14:51 +0100
          Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 15:52 +0100
            Re: var_dump(8.7 <= 8.7) / false? "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-11-15 17:36 +0100
              Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 18:02 +0100
              Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 21:24 +0100
                Re: var_dump(8.7 <= 8.7) / false? "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-11-16 14:43 +0100
                Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-16 21:26 +0100
                Re: var_dump(8.7 <= 8.7) / false? "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-11-17 23:49 +0100
                Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-19 21:15 +0100
        Re: var_dump(8.7 <= 8.7) / false? Claus Reibenstein <4spamersonly@kabelmail.de> - 2018-11-15 19:34 +0100
          Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 21:06 +0100
  Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-15 09:13 +0100
    Re: var_dump(8.7 <= 8.7) / false? "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-11-15 12:22 +0100
  Re: var_dump(8.7 <= 8.7) / false? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2018-11-17 20:55 +0100
    Re: var_dump(8.7 <= 8.7) / false? Stefan Mayer <meniskus@gmx.net> - 2018-11-19 20:52 +0100

csiph-web