给定一个浮点数,比如说(2.0),我想将它转换为Integer类型。就我所知,Integer.parse看起来只适用于字符串。
Integer.parse(2.0)
(FunctionClauseError) no function clause matching in Integer.count_digits/2
答案 0 :(得分:19)
使用trunc(2.0)
或round(2.0)
。这些是自动导入的,因为它们是Kernel的一部分,并且它们也被允许用于保护条款。
答案 1 :(得分:3)
从Elixir 1.8.0开始,内核模块还具有floor/1
和ceil/1
:
iex(1)> floor(2.3)
2
iex(2)> ceil(2.3)
3
答案 2 :(得分:1)
使用 trunc(number)
函数,它是内核函数并自动导入。
Elixir Docs 这个函数:
<块引用>返回数字的整数部分。
示例:
trunc(5.4) --> 5
trunc(-5.99) --> -5
trunc(-5) --> -5
答案 3 :(得分:0)
你是对的Integer.parse/2
函数需要二进制作为参数,如docs所示。
但是,您可以根据自己的要求使用Float.floor/2,Float.ceil/2或Float.round/2