如何在LISP中将实数转换为整数?
有原始功能吗?
示例:
3.0 => 3
答案 0 :(得分:4)
有多种方式。
我将使用f
而不是下面的浮点数。
如果您对下一个最高整数感兴趣,(ceiling f)
会给您这个。如果您对下一个最小的整数感兴趣,(floor f)
会为您提供(对于1.0
之类的值,这两个函数将返回相同的整数值)。如果您希望使用最接近的整数,则可以使用(round f)
来查找它。
这是我能想到的三种最简单,最便携的方式。
答案 1 :(得分:1)
其他选项是TRUNCATE。实例
> (truncate 2.2)
=> 2
0.20000005
> (truncate 2.9)
=> 2
0.9000001