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