Windows上的R15b给出:
>trunc(1.9999999999999999999).
2
就此而言,只需键入float返回:
> 1.9999999999999999999.
2.0
AFAIK,截断函数应该只丢弃小数部分(至少这是我需要的,无论如何)。一个地板功能也可以做AFAIK的伎俩,但我见过的地板实现在网上使用......你猜对了......截断。
我不是在挑剔这个,我实际上需要这个对我正在开发的程序是正确的。
有关于此的任何想法吗?
感谢。
答案 0 :(得分:1)
您的问题是十进制数表示为符合IEEE标准的二进制表示(32,64或128位)。
如果您确实需要精确度,则应使用其他数值数据结构Binary Coded Decimal或fixed-point arithmetic。
希望这有帮助!
答案 1 :(得分:0)
如果你想让TRUNC浮动,也许这个可以帮助:
select substring (convert(varchar(14), CAST (20160303013458 as varchar(14))) , 1 , 8)