> On Jan 19, 2019, at 5:12 PM, Andrew Gierth <and...@tao11.riddles.org.uk> > wrote: > >>>>>> "Donald" == Donald Dong <xd...@csumb.edu> writes: > > Donald> I think the previous additional digits behavior still exist > Donald> in the latest patch. For example: > > Donald> =# set extra_float_digits = 0; > Donald> SET > Donald> =# select float4in('1.123456789'); > Donald> float4in > Donald> ---------- > Donald> 1.12346 > Donald> (1 row) > > Donald> =# set extra_float_digits = 1; > Donald> SET > Donald> =# select float4in('1.123456789'); > Donald> float4in > Donald> ----------- > Donald> 1.1234568 > Donald> (1 row) > > Donald> The extra_float_digits is increased by 1, but two digits are > Donald> added. > > That's intentional; this patch takes any value of extra_float_digits > greater than 0 to mean "generate the shortest precise output". > > In practice setting extra_float_digits to 1 is rare to nonexistent; > almost all users of extra_float_digits set it to either 3 (to get > precise values), 2 (for historical reasons since we didn't allow more > than 2 in older versions), or less than 0 (to get rounded output for > more convenient display when precision is not required).
Makes sense! Thank you for explaining. I wonder if it's necessary to update the doc accordingly? Such as https://www.postgresql.org/docs/11/datatype-numeric.html#DATATYPE-FLOAT and https://www.postgresql.org/docs/11/runtime-config-client.html .