如何在SQL查询中将此值1.2851048260000018E7(双精度)转换为int数据类型?

时间:2019-06-28 16:45:00

标签: sql hiveql

当我运行SQL查询时,美元金额得到一个大的指数值1.2851048260000018E7。如何将其转换为常规值?

1 个答案:

答案 0 :(得分:0)

我假设您并不是真正在寻找int,而是一种非科学的符号。如果您只希望美元和美分使用以下内容(由于您未提供示例代码/数据,则必须针对查询进行调整):

SELECT CAST(1.2851048260000018E7 AS decimal(18,2))

如果您需要更多的十进制数字进行计算,请使用decimal(precision, scale)(如here所述)使用适合于刻度的任何内容。

如果您确实要寻找int数据类型,即用美分四舍五入的美元,请使用:

SELECT CAST(ROUND(1.2851048260000018E7, 0) AS int)

如果忽略ROUND函数,请小心。当您将CAST设为decimalint时,数字将在小数点处被截断而不是四舍五入。