Nim 语言实现数字的舍入运算
2019.12.03
Nim 中文社区
 热度
℃
Nim编程入门
Nim 语言的 math
模块提供了不少便于使用的函数,供我们进行舍入运算。以及 strformat
与 strutils
模块提供了一些函数,使得我们可以格式化浮点数字符串。
四舍五入
round
函数用于四舍五入。
1 2 3 4 5
| import math
doAssert round(2.5) == 3.0 doAssert round(2.4) == 2.0 doAssert round(4.5) == 5.0
|
向下取整
floor
函数用于生成不大于原数的最大整数。
1 2 3 4 5
| import math
doAssert floor(12.4) == 12.0 doAssert floor(11.9) == 11.0 doAssert floor(-3.1) == -4.0
|
向上取整
ceil
函数用于生成不小于原数的最小整数。
1 2 3 4 5
| import math
doAssert ceil(12.4) == 13.0 doAssert ceil(11.9) == 12.0 doAssert ceil(-3.1) == -3.0
|
截断函数
trunc
函数用于只取浮点数的整数部分,和强制 int 类型转换差不多,不同的是生成的是浮点数。
1 2 3 4
| import math
doAssert trunc(PI) == float(int(PI)) doAssert trunc(-2.34) == -2.0
|
格式化打印浮点数
可以使用 .2f
来保留两位小数。
1 2 3 4 5
| import strformat, math
let a = PI doAssert fmt"PI = {a:.2f}" == "PI = 3.14"
|
可以使用 formatFloat
来格式化浮点数。
1 2 3 4 5 6 7 8 9
| import strutils
let x = 3.14159 doAssert x.formatFloat() == "3.141590000000000"
doAssert x.formatFloat(ffDecimal, 7) == "3.1415900"
doAssert x.formatFloat(ffScientific, 2) == "3.14e+00"
|