盒子
盒子
文章目录
  1. Nim编程入门
    1. 四舍五入
    2. 向下取整
    3. 向上取整
    4. 截断函数
    5. 格式化打印浮点数

Nim 语言实现数字的舍入运算

Nim编程入门

Nim 语言的 math 模块提供了不少便于使用的函数,供我们进行舍入运算。以及 strformatstrutils 模块提供了一些函数,使得我们可以格式化浮点数字符串。

四舍五入

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"