Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:122772 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 CF4521A009C for ; Wed, 27 Mar 2024 07:07:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1711523279; bh=FdY6b/X9SbKdjKFe6FIDwLUaPKK35eBG3A8lVJSg9KE=; h=Date:Subject:To:References:From:In-Reply-To:From; b=Wxhe76Q/c4S+NqGZPLv+BUR2ziah7HresSvhefPDVvrgxZKPVzoZi8WUMj65nT0jJ QM5qLilU9DwdtoUCo8sVkk8JoJH0npu0wC5WP90i2bbN6+1G71VEiKB78dY0VVEVFI nFBuVlmdhEkpGI9u7J0CK7nB8G7A5EBc9K/F1ajZT3CWQXFDzVVMBdWrPATWSjqH1f 6EkjjXxmRw4eAlhM17El7U0n0FZWqUfHjxlbUPLPjKiX6oB7LxvRVAV5ROMJdsDYkE R3hEzsGeGhPhcsA1EXyDSLkn/ZAXv/oybfNuaGMdlVFB3/uQmsWBnWhyxgaQdLpa9D wU+lFMxsB772A== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id A8881180068 for ; Wed, 27 Mar 2024 07:07:58 +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.8 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DMARC_MISSING,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mx.kolabnow.com (mx.kolabnow.com [212.103.80.154]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 27 Mar 2024 07:07:57 +0000 (UTC) Received: from localhost (unknown [127.0.0.1]) by mx.kolabnow.com (Postfix) with ESMTP id 17588308B447 for ; Wed, 27 Mar 2024 08:07:32 +0100 (CET) Authentication-Results: ext-mx-out013.mykolab.com (amavis); dkim=pass (4096-bit key) reason="pass (just generated, assumed good)" header.d=kolabnow.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kolabnow.com; h= content-transfer-encoding:content-type:content-type:in-reply-to :from:from:content-language:references:subject:subject :mime-version:date:date:message-id:received:received:received; s=dkim20160331; t=1711523248; x=1713337649; bh=es9nTefuFt9k5r59 MJh5bo7nlsNY8u+ExmtCulUP16I=; b=X8t5mc3HOEc/WNTP3VJeF+oJ9Rm+VeXq 0bsiJUhg611QCcvD39Zo1Yv+zFsMtSWJNPxdKWjKV9Gz1YHYdGI2svJWDF3zUNfO GAbQioXGeCmoFAWjg+turb7poRZXLD5j1GR36DHA0tsKTBNbRbShi/89DablaEhO 86b7ymTrrzRBkrVGoZiwWYocvZpgXfb/UvbqT81ePUtrrqvQ1hO6mj/T+NLMUewI fgi+1yDNSdcJCdCdr8l3XYcc1Elst69SwOSNzwULw3gRM8dFjg4btExO2EF8XnS5 /KA66YWsuxd2swIJ728UNsyzlke1J20LLL3raNf7zEr6kyTUDB10GPnsdT4YGq7t VR+fPyrrGtQ/+nQx4f96fBFtNEj3zd0ywQVTm5JqlhG5gMNJWf1djEmn6yE/79es jlsYDMiKdDQl1ipDxb5sRXIvXmB8lhpEgTV4rYrT9eQiJXiRGQp0FkYCuxO3CdhF M7siNMBuU6EzmAsgYqy4Lqu1gfopC+DbbhftIX3+5i0Py1snqrxm3qyoabaxk5wL 9ZLK/4hh6XjOO9SwbsSe8c89ZHQW9S2DcN6OpWBU6Y5covQBsUJfaw0F0s1phexf 5EYk1ECZ2KdpcDe9aSXpCZxv0FWJKKNDGoFYJiDPcWmT2EjKNCELh2G31CHVJpEN CL3vpx5cdpY= X-Virus-Scanned: amavis at mykolab.com Received: from mx.kolabnow.com ([127.0.0.1]) by localhost (ext-mx-out013.mykolab.com [127.0.0.1]) (amavis, port 10024) with ESMTP id htMN8m0XcuwE for ; Wed, 27 Mar 2024 08:07:28 +0100 (CET) Received: from int-mx011.mykolab.com (unknown [10.9.13.11]) by mx.kolabnow.com (Postfix) with ESMTPS id 87C3F3085BFF for ; Wed, 27 Mar 2024 08:07:28 +0100 (CET) Received: from ext-subm010.mykolab.com (unknown [10.9.6.10]) by int-mx011.mykolab.com (Postfix) with ESMTPS id 0DE3030E7DF1 for ; Wed, 27 Mar 2024 08:07:28 +0100 (CET) Message-ID: <904197f4-afb5-401e-9e17-7a655c5449d0@alec.pl> Date: Wed, 27 Mar 2024 08:07:27 +0100 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 Subject: Re: [PHP-DEV] [RFC] [Discussion] Support object type in BCMath To: internals@lists.php.net References: <4F094EDA-5058-407D-AF39-06FD934FDE1F@sakiot.com> <68CF373E-6ABF-4471-8992-813B4BA1B508@sakiot.com> Content-Language: en-US Autocrypt: addr=alec@alec.pl; keydata= xsBNBEy9TtkBCAC4ef0IJaqTDQNQZ5CPrHvNs5kcACvtffwydrTcRJ28dHwjZD8daSxfVYEo acyARevTOvsp36Vgq8Yt7ATu6y7MPBaPj9Lq0kwX7HM8QDn8jTfufAgMjxcw5bD+JNR5+8G9 hUF3F35gVuAd471hS+QB/Ug/PezcNx9H5yFUMuvrO3ybyIDhw5qJI2RoJMjMr5DPKUG7z810 1e/NW7y9FfHq+Ony7A70w+vcfv1L+LLX5gfrpKI3m0zKm7cj1vyxZfC9RijIzWZN3GgExexI KJdbkcg9F/zigKo72TJhgvjy6YZP03HmWZVcpsd3aIT3Tweg0cCivaKVBNcFR1oda6XvABEB AAHNFkEuTC5FLkMgPGFsZWNAYWxlYy5wbD7CwHsEEwECACUCGyMGCwkIBwMCBhUIAgkKCwQW AgMBAh4BAheABQJMvVAwAhkBAAoJEL7mdKAZNZ3BEhkH/1eAuCOSXsWg8YwZzmABoKKZfNpJ Z3QTwAMxXyCPjJMwLMLHsrVO+VbGupFcIW/q/3bvt1r8LwPB73rg0TFiHoYzeQzdnOVYFW7w OYz9BDVjLE4goDk6xN5Nj1CpBMXzQFdr3HVKyuRK1CLd9p13CofiBlLsQ4JqtosnlvSCEjTL yIajACU3kY2je1e58N5VHzZ+VMeg2xbuQJ3q1iTkYggZ+xRC1muw4Xgt2vxgfWjn7u3dmjYM T3H2WFprLZwliejHgzhWdYABdyCU5VuGCLOV+xk2UCADya0hvVVIezA/4YG3w01yjsljRrKy HFJUqw+MqagA6dsfflZSvmROKMbOwE0ETL1O2QEIANHbid+rMQ/IX0/UyVtnLWunDEg6Yl2B twHTecZ4Ym3tBxc1sbPDoYpY0DZ86gYi9DCbolrdjnrRK9ldYItVJ8rJUkEIDz/2yhjcr3s3 p2SyI94bocoG0WW+VRlssJMxTB2ihblihkY5HqT+9PgOFxnpSqz1ksTaI3JOVcokidhoB7MJ muyb28rNtZCJP7upRUwBSoZfHiL83w3Ad1Fn49QVO7kshH11lNyJ9jB17BTl1I0sj7RPqAor JcMxsSOJXW71ZcipXWym+GacY/qziQw7bT9CQYSmr4SiRV7GahD91enDkdv+pUAnb8NEifQ1 LT26XcL6Ng9EbG5AT4qI46kAEQEAAcLAXwQYAQIACQUCTL1O2QIbDAAKCRC+5nSgGTWdwe2T CACaux3lHitD8IIO5fy6RxPqym6vMlKiN0IyilahtJ0A2htNqwbFb6TukpzKw04DGSPEOGPa o4hdsLtQtqAPwqrR+FGJDc6V/jD0rPjThC3NcvkJuoi622ZLCsi8TAL5kBmF2NYd7ejszB31 5EzvpXSeES8+9pv6yshzUborEg9QKhPxW0yvrdj2OwFUlRr6/jLpKmMLzSx5F0yEg10urvfe 9Sttk5TVzHycOa1nKSzj79F1jXTl/mji/i082s1nlwb8d6LNVrm0e1tGMxSk/WpghFVVSm4O MvUvMkEEDkwGsm+mPcmX4UPcvq/wU3hGhDeVlpkfVTJQGvDbEUzTXbz6 In-Reply-To: <68CF373E-6ABF-4471-8992-813B4BA1B508@sakiot.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit From: alec@alec.pl (Aleksander Machniak) On 27.03.2024 01:03, Saki Takamachi wrote: >> $num = new BcNum('1.23', 2); >> $result = $num + '1.23456'; >> $result->value; // '2.46456' >> $result->scale; // ?? > > In this case, `$result->scale` will be `'5'`. I added this to the RFC. I'm not sure I like this. Maybe we should be more strict here and treat the $scale in constructor (and later withScale()) as the actual scale for all operations. So, in the case above I'd expect ->scale to be 2, and ->value to be '2.46'. If I wanted $num to have a scale that may change, I'd not define it in the first place. Does that make sense? ps. that also means withScale(null) should be possible. -- Aleksander Machniak Kolab Groupware Developer [https://kolab.org] Roundcube Webmail Developer [https://roundcube.net] ---------------------------------------------------- PGP: 19359DC1 # Blog: https://kolabian.wordpress.com