sel cast(9.1 as integer)as inttt;
Result:
9
sel cast(9.9 as integer)as inttt;
Result:
9
我在Teradata上执行了上述查询,两个查询都产生了最低值。
这是从DEC转换为INT的硬规则吗?也就是说,它总是返回最低值吗?
答案 0 :(得分:3)
如果将十进制值转换为整数,则小数位会丢失。这是所有语言(我知道)的情况。
答案 1 :(得分:2)
以下代码可用于舍入十进制数:
Select CAST(number + 0.5 AS integer) from sometable
答案 2 :(得分:1)
正如juergen_d已经说过,这应该是任何语言的默认值。
当您想要舍入而不是截断时,您执行 CAST(9.9 AS DEC(9,0)),或者在TD14中还有 ROUND 功能。但请注意,有两种舍入算法,检查您的系统是否使用了所需的算法: - )
答案 3 :(得分:0)
您使用的是哪个版本的TD?如果14,只需使用CEIL功能?
如果在此之前,可以尝试
CASE WHEN CAST(number AS DEC(9,0) < number THEN CAST(number AS
DEC(9,0) + 1 ELSE CAST(number AS DEC(9,0)
(你显然可以根据自己的舍入逻辑进行调整)
答案 4 :(得分:0)
试试这个
canvas.toDataURL