Erlang浮动和截断

时间:2012-04-27 11:06:21

标签: erlang floating-point truncate

Windows上的R15b给出:

>trunc(1.9999999999999999999).
2

就此而言,只需键入float返回:

> 1.9999999999999999999.              
2.0

AFAIK,截断函数应该只丢弃小数部分(至少这是我需要的,无论如何)。一个地板功能也可以做AFAIK的伎俩,但我见过的地板实现在网上使用......你猜对了......截断。

我不是在挑剔这个,我实际上需要这个对我正在开发的程序是正确的。

有关于此的任何想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您的问题是十进制数表示为符合IEEE标准的二进制表示(32,64或128位)。

如果您确实需要精确度,则应使用其他数值数据结构Binary Coded Decimalfixed-point arithmetic

希望这有帮助!

答案 1 :(得分:0)

如果你想让TRUNC浮动,也许这个可以帮助:

select substring (convert(varchar(14), CAST (20160303013458 as varchar(14))) , 1 , 8)