你所谓的指数实际上只是用科学记数法写的浮点数,有时也称为指数表示法.实际的指数实际上只是整个事物的一部分.它与尾数一起使我们可以方便地表示非常大和/或小的数字:
mantissa * (10 ^ exponent)
Run Code Online (Sandbox Code Playgroud)
所以在Elixir中,和许多其他语言一样,这个数字1.23 * (10 ^ 5)
可以写成1.23e5
.如果您键入您的例子数1.0e2
为iex
,你会看到,它实际上只是对浮点数顶部的便利:
iex> 1.0e2
100.0
Run Code Online (Sandbox Code Playgroud)
所以问题应该是:"如何将浮点数转换为整数?".答案是,您可以使用以下功能之一来实现此目的:
Kernel.round/1
- 圆形Kernel.trunc/1
- 小数点后删除数字Float.round/2
- 精确的圆形Float.floor/2
- 精确计算Float.ceil/2
- 精确地向下舍入这些Kernel
功能在防护测试中是允许的,你不需要将它们放在Kernel.
前面以便调用它们.这些Float
函数还允许您指定精度,以便在小数点后保留一些数字.在你的例子中,你使用哪一个并不重要,因为它100.0
是一个整数.然而,上面提到的函数的行为用不同的数字最好地说明,例如1.55
:
iex> round(1.55)
2
iex> trunc(1.55)
1
iex> Float.round(1.55)
2.0
iex> Float.round(1.55, 1)
1.6
iex> Float.floor(1.55)
1.0
iex> Float.floor(1.55, 1)
1.5
iex> Float.ceil(1.55)
2.0
iex> Float.ceil(1.55, 1)
1.6
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2685 次 |
最近记录: |