Elixir语言中 Float.round
相关用法介绍如下。
用法:
round(float, precision \\ 0)
@spec round(float(), precision_range()) :: float()
将浮点值四舍五入为任意数量的小数位数(0 到 15 之间)。
舍入方向始终与半向上相关。该操作在二进制浮点上执行,无需转换为十进制。
这个函数只接受浮点数并且总是返回一个浮点数。如果您想要一个同时接受浮点数和整数并始终返回整数的函数,请使用
。Kernel.round/1
已知的问题
用于浮点数的行为可能令人惊讶。例如:round/2
iex> Float.round(5.5675, 3)
5.567
人们可能预计它会向上取整至 5.568 的一半。这不是错误。大多数小数不能表示为二进制浮点数,因此上述数字在内部表示为 5.567499999,这解释了上述行为。如果要对小数进行精确舍入,则必须使用十进制库。上述行为也符合参考实现,例如 David M. Gay 的“Correctly Rounded Binary-Decimal and Decimal-Binary Conversions”。
例子
iex> Float.round(12.5)
13.0
iex> Float.round(5.5674, 3)
5.567
iex> Float.round(5.5675, 3)
5.567
iex> Float.round(-5.5674, 3)
-5.567
iex> Float.round(-5.5675)
-6.0
iex> Float.round(12.341444444444441, 15)
12.341444444444441
相关用法
- Elixir Float.ratio用法及代码示例
- Elixir Float.to_charlist用法及代码示例
- Elixir Float.to_string用法及代码示例
- Elixir Float.ceil用法及代码示例
- Elixir Float.pow用法及代码示例
- Elixir Float.floor用法及代码示例
- Elixir Float.parse用法及代码示例
- Elixir File.cp_r用法及代码示例
- Elixir File.rm用法及代码示例
- Elixir File.rmdir用法及代码示例
- Elixir File.exists?用法及代码示例
- Elixir File用法及代码示例
- Elixir File.touch!用法及代码示例
- Elixir File.stream!用法及代码示例
- Elixir Function.identity用法及代码示例
- Elixir File.rename用法及代码示例
- Elixir File.open用法及代码示例
- Elixir Function用法及代码示例
- Elixir File.rm_rf用法及代码示例
- Elixir File.regular?用法及代码示例
- Elixir Function.info用法及代码示例
- Elixir Function.capture用法及代码示例
- Elixir File.touch用法及代码示例
- Elixir File.dir?用法及代码示例
- Elixir StringIO.flush用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Float.round(float, precision \\ 0)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。