我试过这个blog中的有效数字查询(https://www.garysieling.com/blog/postgres-significant-figures-pg_size_pretty)。
但是上面好像有固定的小数位。
SELECT FLOOR(5.4321/(10 ^ FLOOR(log(5.4321)-1))) * (10 ^ FLOOR(log(5.4321)-1))
上述查询的结果是5.4。如何实现查询以创建这些结果?
number | sigfig
5.4321 | 5.43
10.987 | 10.9
550.75 | 550
9850.5 | 9850
ect
谢谢兄弟们的帮助!
3条答案
按热度按时间ddarikpa1#
您可以使用以下函数舍入到有效位数:
与Laurenz的回答相比,这有以下不同之处:
sig_digits(15, 1)
是20
,而不是10
)log
(这很慢),并且只调用log
一次qf9go6mv2#
为了提供这个问题的更一般的答案,我建议您使用以下函数,其中有效位数是可变的:
然后,您将得到以下内容:
请注意,公式并不像博客文章所声称的那样是“舍入”,而是“截断”。
jjhzyzn03#
将计数(状态)四舍五入到最高有效位的示例: