Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lZqQC-0003P6-8Y for pgsql-docs@arkaria.postgresql.org; Fri, 23 Apr 2021 07:40:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lZqQ8-0003Mh-6z for pgsql-docs@arkaria.postgresql.org; Fri, 23 Apr 2021 07:40:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lZqQ8-0003Ln-0u for pgsql-docs@lists.postgresql.org; Fri, 23 Apr 2021 07:40:12 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lZqQ6-0002ew-5L for pgsql-docs@lists.postgresql.org; Fri, 23 Apr 2021 07:40:11 +0000 Received: by mail-wm1-x332.google.com with SMTP id w186so20916256wmg.3 for ; Fri, 23 Apr 2021 00:40:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version; bh=rWCBv/4popyY0r/38aN0pGjT8afl+6HlbXJi0pW1gJc=; b=F/n1j18coxEbCVYy4z1/kZYMXyKp/nc6Ih1ahPsHO6NSI3S327uXUSyWhrmcgT334z reOnjWb+Anej0z/Rx8lDv4hW+lrjerePSWfDFUI0bOaJY9RWD9ICmJQ7EWBrFR6fiAYE U8nBatX1cDKc+kuw6T292WzY06ejP8m1iTo0CpxIiroVelzLfZrDWlqZBIEogPGFhCIa 4v0SyWBjWtWBKKyj/xMvZ3jW056ym/vp4YWwM8ivoDK/flLndIMiUSITnVdqRWIANrv3 x4TTGF2BvoCYIGL099sVzJfnf8iTq2Eg9dihojVAus6sS+HH+xm0OY950J+FcE8Fy47q SxeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version; bh=rWCBv/4popyY0r/38aN0pGjT8afl+6HlbXJi0pW1gJc=; b=c+Z5VoJZEGvckmzVNu4OeOEIZzWpA3Toi2Uyw3dJAu7VuNyOw7TJHb2qlzKhQh+qZF pVDG/3DQSWYGzSZnfFoyHp9A5HfgqHmhslLaDW2UTWOhF2GQh58OW3HnUJz9/zV7frtK 8uGMzoTrYWxWtEP8tD9VxMyFX+QV+Q3XCZ0O4ha9s09Wm794e++LHxCpszpH8mq+gipc EpRiD82F76AJKA0oAKyDGNJrBb95x3uShQ5CCrKe3msAFgpTHSRXsibHDs6Io1/JBONn RZlKcG30/AW1cGHIi+l8rFFOz/DtKK7X81/xFOjMIT4FC8BV+yUHVNPI7NCcg3PYbM0n uEcA== X-Gm-Message-State: AOAM530m2mBNGm8YeYn3oSU+c3W7u0d/wNqNcArFTRJjCli2SxsqAwJS FYWN25JCmn83RTWRZgSDTkeHsQ== X-Google-Smtp-Source: ABdhPJyzDeHZyN/XfwXDbHHq0qTcSy0tSi3dNyuzu60prGuum6lBMKPGlkrTrwYwtSoTcjahhnc4uQ== X-Received: by 2002:a05:600c:19d1:: with SMTP id u17mr2668269wmq.111.1619163608566; Fri, 23 Apr 2021 00:40:08 -0700 (PDT) Received: from localhost.localdomain (217-149-165-217.nat.highway.telekom.at. [217.149.165.217]) by smtp.gmail.com with ESMTPSA id g5sm7923632wrq.30.2021.04.23.00.40.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Apr 2021 00:40:08 -0700 (PDT) Message-ID: Subject: Re: Rounding strategy From: Laurenz Albe To: Tom Lane Cc: rudolphfroger@dreamsolution.nl, pgsql-docs@lists.postgresql.org Date: Fri, 23 Apr 2021 09:40:04 +0200 In-Reply-To: <1100756.1619113820@sss.pgh.pa.us> References: <161881920775.685.12293798764864559341@wrigleys.postgresql.org> <40dea1e0254dc00213f0dd10afa5e668abf0d020.camel@cybertec.at> <1100756.1619113820@sss.pgh.pa.us> Content-Type: multipart/mixed; boundary="=-fsTdex327vRZXOAO2/Rl" User-Agent: Evolution 3.36.5 (3.36.5-2.fc32) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-fsTdex327vRZXOAO2/Rl Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit On Thu, 2021-04-22 at 13:50 -0400, Tom Lane wrote: > Laurenz Albe writes: > > On Mon, 2021-04-19 at 08:00 +0000, PG Doc comments form wrote: > > > The 'round' mathematical function documentation doesn't specify its rounding > > > strategy. If this would be documented then users can rely on its rounding > > > behavior. For double precision the rounding probably depends on your > > > platform. For numeric the function seems to round to nearest with ties going > > > away from zero (sometimes referred to as "round half up). 6.5 -> 7.0 and > > > -6.5 -> -7.0. > > > > Here is a proposed patch. > > LGTM, although I think we can be a bit more specific about the float > case. I suggest > > ... by rounding away from 0. For double precision, > the tie-breaking behavior is platform dependent, but > round to nearest even is the most common rule. Makes sense. Here is an updated patch. Yours, Laurenz Albe --=-fsTdex327vRZXOAO2/Rl Content-Disposition: attachment; filename="0001-Document-tie-breaking-behavior-of-round.v2.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Document-tie-breaking-behavior-of-round.v2.patch"; charset="UTF-8" RnJvbSA3ODgxZDhhNzNmNmNmOTNjMjFhOWQxNDA1NzM2YzZjZTZjZmY1NDI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogRnJpLCAyMyBBcHIgMjAyMSAwOTozODoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0hd IERvY3VtZW50IHRpZSBicmVha2luZyBiZWhhdmlvciBvZiByb3VuZCgpCgotLS0KIGRvYy9zcmMv c2dtbC9mdW5jLnNnbWwgfCA4ICsrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IDY3ZDgwMmIwMmMuLjllZDM5ZGFiZmQgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbApAQCAtMTU2OCw3ICsxNTY4LDExIEBAIHJlcGVhdCgnUGcnLCA0KSA8cmV0dXJudmFsdWU+ UGdQZ1BnUGc8L3JldHVybnZhbHVlPgogICAgICAgICA8cmV0dXJudmFsdWU+ZG91YmxlIHByZWNp c2lvbjwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgotICAgICAg ICBSb3VuZHMgdG8gbmVhcmVzdCBpbnRlZ2VyCisgICAgICAgIFJvdW5kcyB0byBuZWFyZXN0IGlu dGVnZXIuICBGb3IgPHR5cGU+bnVtZXJpYzwvdHlwZT4sIHRpZXMgYXJlCisgICAgICAgIGJyb2tl biBieSByb3VuZGluZyBhd2F5IGZyb20gMC4gIEZvciA8dHlwZT5kb3VibGUgcHJlY2lzaW9uPC90 eXBlPiwKKyAgICAgICAgdGhlIHRpZSBicmVha2luZyBiZWhhdmlvciBpcyBhcmNoaXRlY3R1cmUg ZGVwZW5kZW50LCBidXQKKyAgICAgICAgPHF1b3RlPnJvdW5kIHRvIG5lYXJlc3QgZXZlbjwvcXVv dGU+IGluIGFjY29yZGFuY2Ugd2l0aCBJRUVFLTc1NAorICAgICAgICBpcyB0aGUgbW9zdCBjb21t b24gcnVsZS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIDxsaXRlcmFs PnJvdW5kKDQyLjQpPC9saXRlcmFsPgpAQCAtMTU4Myw3ICsxNTg3LDcgQEAgcmVwZWF0KCdQZycs IDQpIDxyZXR1cm52YWx1ZT5QZ1BnUGdQZzwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgog ICAgICAgIDxwYXJhPgogICAgICAgICBSb3VuZHMgPHBhcmFtZXRlcj52PC9wYXJhbWV0ZXI+IHRv IDxwYXJhbWV0ZXI+czwvcGFyYW1ldGVyPiBkZWNpbWFsCi0gICAgICAgIHBsYWNlcworICAgICAg ICBwbGFjZXMuICBUaWVzIGFyZSBicm9rZW4gYnkgcm91bmRpbmcgYXdheSBmcm9tIDAuCiAgICAg ICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICA8bGl0ZXJhbD5yb3VuZCg0Mi40Mzgy LCAyKTwvbGl0ZXJhbD4KLS0gCjIuMjYuMwoK --=-fsTdex327vRZXOAO2/Rl--