Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:122678 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 790C71AD8F6 for ; Mon, 18 Mar 2024 08:08:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1710749323; bh=qqbVz+Fb95SCBE784wbTuQZHc0IUKfAjP6xGyC5Uo5c=; h=Date:Subject:To:References:From:In-Reply-To:From; b=Zf80g/TpejFiQYN8dbhcS6iz0gIbKQIR6uWr1+BOEmWF9jIXPGYbFQ5FNcLStHSY+ xJ3krsAOdERYLSu11GSLKhD6LcIa3ELohq59SXWnxiKnz2Dr8PtJ372xubKeovXMdD /7E5tmJ1caFU7JMZhsxOOhuUi04Fy+b/X5GprVC4TjXlYfpyKpzSs2i7NIjAdZXzRt w52OUIx86ReBipf+3EczIUfzlmIAP/APHC4ML+J4eq6d9YEmQpy1ZRmCkiaX9cJlH0 Jpg3gxn4DXXKxY7QHyoN4NdziTz5gn1YfG5zIMBmTucD0GqcVhpHO8rBgbIqrpFNbu Eewheuxir3uRw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id F1ECF18006E for ; Mon, 18 Mar 2024 08:08:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,DKIM_INVALID, DKIM_SIGNED,DMARC_MISSING,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from wp160.webpack.hosteurope.de (wp160.webpack.hosteurope.de [80.237.132.167]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 18 Mar 2024 08:08:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mabe.berlin ; s=he194859; h=Content-Type:In-Reply-To:From:References:To:Subject: MIME-Version:Date:Message-ID:From:Sender:Reply-To:Subject:Date:Message-ID:To: Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=VNFv/l5rFrZrK8aq4+9oRvRN1yzIfd7lRpVoIeFrONA=; t=1710749303; x=1711181303; b=F+ZCeslaiD3bnV/OlPcC4rWVUM3n4SMKqiF0KpLx4iwRigYFUpkZRcDWtSIt0h7yUQt4VUkR3A 2ixxBu0cjyyFj4MK850XyiIGIDr+eFxKz8TvMTFNYXC/G7YAIwVN6i+t4V1UHSRb1GEqwPDNVcDLN IILFIMwBDOnpCtrIz8YuLrBbPUlhIbC58mNvJCZ7t3tl705OtOJ11blGU+Zo3HD3ftGzUCKXoDb2C Cc9cvDzo1p2aABDDSZFf8L8TXJ7K5H6W6u7ZNOh6whj/57ueiCM6TcO5yd8QNWuDPHMQtrM9FWVum +ZeZiN8sDDFid+pC5/nHwGJk5gObE6RvbZZXA==; Received: from [176.95.78.98] (helo=[192.168.3.113]); authenticated by wp160.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) id 1rm82f-00058A-E5; Mon, 18 Mar 2024 09:08:21 +0100 Message-ID: <63c0badf-76ab-4e6e-8961-1e58f4b6b35b@mabe.berlin> Date: Mon, 18 Mar 2024 09:08:21 +0100 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] Re: [RFC] [Discussion] [VOTE] Rounding Integers as int Content-Language: en-US To: internals@lists.php.net References: <1295818d-5b01-4c94-ac21-d6645d784de4@mabe.berlin> Autocrypt: addr=marc@mabe.berlin; keydata= xsBNBFby8roBCAD4qHjbk9+V3SmB5DfpkTtX58jYJ9VXVfF54MDoI0fQiYvKyrrghfO78alH c12RsEZxLH2F5kEfu8WO4wA4apg2gBnRRxqPj7krsct1ySOAdMrRVp8Wtaeaznpdcn2gJZyA MSI6LTzebT25N77ksvSrUi1BuCKyOa7SmYff3xGgOwYsHQlT5opMNGPCVegiPmO/K37anwts gj6L7RVtjXtp2Z3wAs6r3EmO318PL48xDLUgYMvEFAPJglth5FGH2En6n6HFIhxh43LqXQiN eHVjLjS2y8huNBswwc9ZVxk3ip5z/GCmpWnNkgGBOSJ7loJRsq2tOaU6yU8KWb5rhOoFABEB AAHNIU1hcmMgQmVubmV3aXR6IDxtYXJjQG1hYmUuYmVybGluPsLAeAQTAQIAIgUCVvLyugIb AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQOTar91O8iM6jzggAwvV6MqU/hcAI6ldp xVjucGz2J9cAWtva8GL+rm9zvEs7EENtamehJiZob/CTw50WiI/zsJzPblktpT0D2AFBEp9k P5/8CmCpZzxYPsxnLtsFM52fOBpO+aP0PSStBpJjndjBH7HPqKcTCXM3ZM+SL6lyRweAJR7G +JXIZbuUrbjB2lbGx3itNZ6TeXqqnE6KTXNKLEbNHfVdzE4sPDkmuZRo/M2h+gmeS1iQb29W BmhvL6czugCQI9rYl7C4Nci9wPii1lTYyfCWQfQKID4/F2HiOv+N/vDMCK1xV8TUeCy8w4X+ nYj+wDog046ki9lUM60oPij6WoSJLqfsXr1kNc7ATQRW8vK6AQgAq7QYLB1Dz+8RSi5AGJP1 tOFQXtcxyOhNVQZsI1mCQiHay4wteQ+5m4EOUuR+FrFIlnbSrPdTkKD2wvQDHVqpZivThBpJ vara/ick0wi2R3dasu1sPMu1P6h1EwUsydhviNJB07aLfPAWD6eoqmGTd8236znIIq7mbnNp OnxIQxviTyELUekrNw38uQtVzR6XZv9PAThA2o1J1JZID7QUpKcNyo9ebYlwxyS+xzhA4DLD qfD6O5sKoKvxEf2fIZeP0ETPpHNYk0WiWnmNoPy8eEY07LriYALVidBwPBcxus0wGoKf8Nun y2aE13SHmj0ioBI1bXMGJx3hEbvzXK6WrwARAQABwsBfBBgBAgAJBQJW8vK6AhsMAAoJEDk2 q/dTvIjOkowIAI70P8U4j3eqyK/7x1bnCZZRcpwZ1aH+LR1yMKTINo9NDqlOBWQTLT69YMfV 4UN+nTSiD/uLw1fSeLSzBwpoalCMLPVOX/d3Mq5JtL5cKtWUTIVf3Vb7VbN4Rvb8HgWjeSnM 1PiG9yQBmLKI68sG/gdgvA/xANdUatkDgG0yj8PCdt+Vy4EblXbIAXZXJ6eRugSKowTjst7i HXKOJxivomHFcmqmkiqjwGTGx/jrhbDtEpPDRk+U9W45D4CbUcyPR6lMSrje5JPGQDv/45M5 wPe286YelBjnb0cWRJpA7GZCWDKZOsQ2H6cCRBi8i4m+vfRk7GLA536XnmvWxKFVP9U= In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------7yhzaGbk8NkAreu60XWanAyB" X-bounce-key: webpack.hosteurope.de;marc@mabe.berlin;1710749303;ded1ae1d; X-HE-SMSGID: 1rm82f-00058A-E5 From: marc@mabe.berlin (Marc Bennewitz) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------7yhzaGbk8NkAreu60XWanAyB Content-Type: multipart/mixed; boundary="------------adJhKBdvLz4xB6sYyhepjhHP"; protected-headers="v1" From: Marc Bennewitz To: internals@lists.php.net Message-ID: <63c0badf-76ab-4e6e-8961-1e58f4b6b35b@mabe.berlin> Subject: Re: [PHP-DEV] Re: [RFC] [Discussion] [VOTE] Rounding Integers as int References: <1295818d-5b01-4c94-ac21-d6645d784de4@mabe.berlin> In-Reply-To: --------------adJhKBdvLz4xB6sYyhepjhHP Content-Type: multipart/mixed; boundary="------------6CPjH2xcjB75sgaexze5h0y9" --------------6CPjH2xcjB75sgaexze5h0y9 Content-Type: multipart/alternative; boundary="------------KDX6k1qrGMpRiQoJBKrb35Ua" --------------KDX6k1qrGMpRiQoJBKrb35Ua Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkgVmluY2VudCwNCg0KT24gMTcuMDMuMjQgMjI6NTksIFZpbmNlbnQgTGFuZ2xldCB3cm90 ZToNCj4gSGksDQo+DQo+IElNSE8sIHRoZSBtb3JlIG1lYW5pbmdmdWwgY2FzZXMgb2YgdGhl IFJGQyBhcmUgbWlzc2luZyA6DQo+IHJvdW5kKGZsb2F0LCBwcmVjaXNpb246ID49IDApOiBp bnR8ZmxvYXQgLy8gb25seSBjYXN0IHRvIGZsb2F0IGZvciBpbnQgb3ZlcmZsb3cNCj4gY2Vp bChmbG9hdCk6IGludHxmbG9hdCAvLyBvbmx5IGNhc3QgdG8gZmxvYXQgZm9yIGludCBvdmVy Zmxvdw0KPiBmbG9vcihmbG9hdCk6IGludHxmbG9hdCAvLyBvbmx5IGNhc3QgdG8gZmxvYXQg Zm9yIGludCBvdmVyZmxvdw0KPiBDYWxsaW5nIGNlaWwgb3IgZmxvb3Igb24gaW50ZWdlciBp cyBtZWFuaW5nbGVzcywgYmVjYXVzZSBpdCB3aWxsIA0KPiByZXR1cm4gdGhlIHNhbWUgdmFs dWUuDQo+IFRoZSBSRkMgc2hvdWxkIGJlICJQcmVmZXIgaW50IGFzIHJldHVybiB2YWx1ZSB3 aGVuIHBvc3NpYmxlIi4NCj4NCkkgZG8gYmVsaWV2ZSBpdCdzIGltcG9ydGFudCB0byBhdm9p ZCB1bm5lY2Vzc2FyeSBjYXN0cyBhcyBtdWNoIGFzIA0KcG9zc2libGUgYW5kIGxlYXZlIGl0 IHVwIHRvIHRoZSB1c2VyIG1ha2luZyBjYXN0IGV4cGxpY2l0IHRoYW4gaW1wbGljaXQgDQpl bHNlIHRoZSBiZWhhdmlvciBnZXRzIHF1aXRlIHVucHJlZGljdGFibGUuDQoNCkltcGxpY2l0 bHkgY2FzdGluZyB0byBmbG9hdCBvbmx5IGhhcHBlbnMgb24gaW50IHVuZGVyZmxvdy9vdmVy Zmxvdy4gDQpJbXBsaWNpdGx5IGNhc3RpbmcgdG8gaW50IHdpbGwgbmV2ZXIgaGFwcGVuLg0K DQpBcyB5b3Ugc2F5ICJDYWxsaW5nIGNlaWwgb3IgZmxvb3Igb24gaW50ZWdlciBpcyBtZWFu aW5nbGVzcywgYmVjYXVzZSBpdCANCndpbGwgcmV0dXJuIHRoZSBzYW1lIHZhbHVlLiIgdGhp cyBpcyBhbHJlYWR5IG5vdGVkIGluIHRoZSBSRkMgYW5kIHRoZSANCmZ1bmN0aW9ucyB3aWxs IGJlIGEgbm8tb3AgaW4gdGhpcyBjYXNlLg0KDQpCZXN0IHJlZ2FyZHMsDQpNYXJjDQoNCg== --------------KDX6k1qrGMpRiQoJBKrb35Ua Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Hi Vincent,

On 17.03.24 22:59, Vincent Langlet wrote:
Hi,=C2=A0

IMHO, the more meaningful cases of the RFC are missing :
round(float, precisio=
n: >=3D 0): int|float // only cast to float for int overflow
ceil(float): int|float // only cast to float for int overflow
floor(float): int|float // only cast to float for int overflow
Calling ceil or floor on integer is meaningless, because it will return the same value.
The RFC should be "Prefer int as return value when possible".
=

I do believe it's important to avoid unnecessary casts as much as possible and leave it up to the user making cast explicit than implicit else the behavior gets quite unpredictable.

Implicitly casting to float only happens on int underflow/overflow. Implicitly casting to int will never happen.

As you say "Calling ceil or floor on integer is meaningless, because it will return the same value." this is already noted in the RFC and the functions will be a no-op in this case.

Best regards,
Marc

--------------KDX6k1qrGMpRiQoJBKrb35Ua-- --------------6CPjH2xcjB75sgaexze5h0y9 Content-Type: application/pgp-keys; name="OpenPGP_0x3936ABF753BC88CE.asc" Content-Disposition: attachment; filename="OpenPGP_0x3936ABF753BC88CE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xsBNBFby8roBCAD4qHjbk9+V3SmB5DfpkTtX58jYJ9VXVfF54MDoI0fQiYvKyrrg hfO78alHc12RsEZxLH2F5kEfu8WO4wA4apg2gBnRRxqPj7krsct1ySOAdMrRVp8W taeaznpdcn2gJZyAMSI6LTzebT25N77ksvSrUi1BuCKyOa7SmYff3xGgOwYsHQlT 5opMNGPCVegiPmO/K37anwtsgj6L7RVtjXtp2Z3wAs6r3EmO318PL48xDLUgYMvE FAPJglth5FGH2En6n6HFIhxh43LqXQiNeHVjLjS2y8huNBswwc9ZVxk3ip5z/GCm pWnNkgGBOSJ7loJRsq2tOaU6yU8KWb5rhOoFABEBAAHNIU1hcmMgQmVubmV3aXR6 IDxtYXJjQG1hYmUuYmVybGluPsLAeAQTAQIAIgUCVvLyugIbAwYLCQgHAwIGFQgC CQoLBBYCAwECHgECF4AACgkQOTar91O8iM6jzggAwvV6MqU/hcAI6ldpxVjucGz2 J9cAWtva8GL+rm9zvEs7EENtamehJiZob/CTw50WiI/zsJzPblktpT0D2AFBEp9k P5/8CmCpZzxYPsxnLtsFM52fOBpO+aP0PSStBpJjndjBH7HPqKcTCXM3ZM+SL6ly RweAJR7G+JXIZbuUrbjB2lbGx3itNZ6TeXqqnE6KTXNKLEbNHfVdzE4sPDkmuZRo /M2h+gmeS1iQb29WBmhvL6czugCQI9rYl7C4Nci9wPii1lTYyfCWQfQKID4/F2Hi Ov+N/vDMCK1xV8TUeCy8w4X+nYj+wDog046ki9lUM60oPij6WoSJLqfsXr1kNc7A TQRW8vK6AQgAq7QYLB1Dz+8RSi5AGJP1tOFQXtcxyOhNVQZsI1mCQiHay4wteQ+5 m4EOUuR+FrFIlnbSrPdTkKD2wvQDHVqpZivThBpJvara/ick0wi2R3dasu1sPMu1 P6h1EwUsydhviNJB07aLfPAWD6eoqmGTd8236znIIq7mbnNpOnxIQxviTyELUekr Nw38uQtVzR6XZv9PAThA2o1J1JZID7QUpKcNyo9ebYlwxyS+xzhA4DLDqfD6O5sK oKvxEf2fIZeP0ETPpHNYk0WiWnmNoPy8eEY07LriYALVidBwPBcxus0wGoKf8Nun y2aE13SHmj0ioBI1bXMGJx3hEbvzXK6WrwARAQABwsBfBBgBAgAJBQJW8vK6AhsM AAoJEDk2q/dTvIjOkowIAI70P8U4j3eqyK/7x1bnCZZRcpwZ1aH+LR1yMKTINo9N DqlOBWQTLT69YMfV4UN+nTSiD/uLw1fSeLSzBwpoalCMLPVOX/d3Mq5JtL5cKtWU TIVf3Vb7VbN4Rvb8HgWjeSnM1PiG9yQBmLKI68sG/gdgvA/xANdUatkDgG0yj8PC dt+Vy4EblXbIAXZXJ6eRugSKowTjst7iHXKOJxivomHFcmqmkiqjwGTGx/jrhbDt EpPDRk+U9W45D4CbUcyPR6lMSrje5JPGQDv/45M5wPe286YelBjnb0cWRJpA7GZC WDKZOsQ2H6cCRBi8i4m+vfRk7GLA536XnmvWxKFVP9U=3D =3Doi2m -----END PGP PUBLIC KEY BLOCK----- --------------6CPjH2xcjB75sgaexze5h0y9-- --------------adJhKBdvLz4xB6sYyhepjhHP-- --------------7yhzaGbk8NkAreu60XWanAyB Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEENJIbKB0SAX2RmUKbOTar91O8iM4FAmX39nUFAwAAAAAACgkQOTar91O8iM4O lwf/Qz/KFUIYTY8ZSQcpkydfAaClTINrXr0ckbuvkkc/RJrFt6mN0Vl1MFnKB7mHfuHESLT32NEY 89hEX6i+74BuJFH4Jb/sQkZaVIgADoWy+o4zqxLEWU6xMHE5Ma1xG+UsJITL9/rvwUrop/vveLmO fKbjeYq2woz+phFCcPyT4auPGfXdCekCz7NOPMu3SenA0juZZAQvijdJWWeWXJD3ee/ZrM35M5Wz T+8ZUE/FItmk3bx1DL1PPr+monOxJVDxmvwcIAG20t4KyzF+ySMqQt1M1ty3NmaUHV/h3whCHXvj zQ3eUo5MC8r6i4RInX1LjxaPqvPzaAMMTWrw7onLsA== =HqPE -----END PGP SIGNATURE----- --------------7yhzaGbk8NkAreu60XWanAyB--