【问题标题】:How to divide two integers without getting 0?如何将两个整数相除而不得到 0?
【发布时间】:2018-12-04 19:15:19
【问题描述】:

我的目标是 Presto 0.212 中的两个整数除以两个整数,例如。 G。 1/2。幼稚的方法SELECT 1/2 返回 0。接下来,我尝试了SELECT CAST(1/2 AS DOUBLE),但这也返回 0。如何除以 1/2 以返回 0.5?

【问题讨论】:

    标签: division presto


    【解决方案1】:

    我不熟悉 Presto,但我的猜测是,在您提供的示例中,1/2 被评估为整数,然后被转换为双精度。也许类似于SELECT CAST(1 AS DOUBLE)/CAST(2 AS DOUBLE) 的内容,或者您​​可以将.0 添加到您的数字末尾,例如SELECT 1.0/2.0。我只是在黑暗中开了几枪。

    【讨论】:

    • 两者都可以,但是因为我想划分列,所以我选择了第一个。
    • 在 Presto(遵循 SQL 标准)中,2.0 不是double,它是decimal(2,1) 类型。这会影响结果:10 / 3e0 打印 3.3333333333333335,而 10 / 3.0 打印 3.3。使用科学记数法或显式类型构造来获得“2 as double”:2e0double '2'
    猜你喜欢
    • 1970-01-01
    • 2019-10-29
    • 2017-03-14
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多