使用PrestoSQL进行32位或64位浮点除法

在Presto SQL中,SELECT 1 / 3返回0,因为/执行整数除法。

但是SELECT 1.0 / 3返回0.3 ...如何获得0.3333333333? (即更确切地说,是32位还是64位精度,而不是第一个小数位截断?)

jackybye 回答:使用PrestoSQL进行32位或64位浮点除法

我想将文字1.0视为DECIMAL(2,1)。您可以改用浮点文字:

SELECT REAL '1'   / 3 -- '1' is a 32-bit float
SELECT DOUBLE '1' / 3 -- '1' is a 64-bit float
SELECT 1e0        / 3 -- scientific notation implies 64-bit float
,

除法之前,您可以cast()

要获得64位精度:

select cast(1 as double) / 3

要获得32位精度:

select cast(1 as real) / 3
本文链接:https://www.f2er.com/3110738.html

大家都在问