floori
2026/4/15大约 2 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — floori
floori
定义
floori() 用来将一个数向下取整,并返回整数类型(int)——简单说,就是"不管零头多大,都直接砍掉"。
想象你有一根 3.7 米长的绳子,但你只能按整米来计数,那么你的记录就是 3 米——零头那 0.7 米直接忽略。floori(3.7) 返回 3,就是这个道理。
floori 和 floorf 功能类似,区别在于 floori 返回的是整数(int),而 floorf 返回的是浮点数(float)。在游戏开发中,向下取整常用于网格对齐、计算已完成的完整周期数、索引计算等场景。
函数签名
C#
public static int FloorToInt(float x)
// 或
public static float Floor(float x) // 返回 float,需手动转为 intGDScript
func floori(x: float) -> int参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
x | float | 是 | 要向下取整的浮点数 |
返回值
int —— 小于或等于 x 的最大整数。例如 floori(3.7) 返回 3,floori(-1.2) 返回 -2。
代码示例
C#
// 基本用法
int a = Mathf.FloorToInt(3.7f); // 3
int b = Mathf.FloorToInt(3.1f); // 3
int c = Mathf.FloorToInt(-1.2f); // -2(向下取整,-2 比 -1.2 小)
int d = Mathf.FloorToInt(5.0f); // 5(已经是整数,不变)
// 实际使用:将角色位置对齐到网格
float playerX = 7.8f;
int gridX = Mathf.FloorToInt(playerX); // 7
GD.Print($"角色所在网格列: {gridX}");
// 计算已经完整跑完的圈数
float distance = 12.3f;
float lapLength = 5.0f;
int completedLaps = Mathf.FloorToInt(distance / lapLength); // 2
GD.Print($"已完成 {completedLaps} 圈");GDScript
# 基本用法
var a = floori(3.7) # 3
var b = floori(3.1) # 3
var c = floori(-1.2) # -2(向下取整,-2 比 -1.2 小)
var d = floori(5.0) # 5(已经是整数,不变)
# 实际使用:将角色位置对齐到网格
var player_x = 7.8
var grid_x = floori(player_x) # 7
print("角色所在网格列: %d" % grid_x)
# 计算已经完整跑完的圈数
var distance = 12.3
var lap_length = 5.0
var completed_laps = floori(distance / lap_length) # 2
print("已完成 %d 圈" % completed_laps)注意事项
floori返回的是 int 类型,而floorf返回的是 float 类型。如果你需要整数结果,优先使用floori,省去了手动类型转换的麻烦。- 向下取整对于负数的表现可能不符合直觉:
floori(-1.2)返回-2,而不是-1。因为"向下"指的是数值更小的方向(-2 < -1.2)。 - 如果传入的值本身就是整数(如
5.0),函数直接返回该整数值,不会改变。
