Lua 的 Math 模块

简介: 这个库提供了基本的数学函数。 所以函数都放在表 math 中。 注解有 "integer/float" 的函数会对整数参数返回整数结果, 对浮点(或混合)参数返回浮点结果。 圆整函数(math.ceil, math.floor, math.modf) 在结果在整数范围内时返回整数,否则返回浮点数。

#Lua 的 Math 模块

请查看 Lua 标准库模块列表 了解更多相关 API。

常量 说明
math.huge 数值的最大值,通常对应 C 语言中的 HUGE_VAL
math.maxinteger 整数的最大值,通常对应 C 语言中的 LONG_MAX
math.mininteger 整数的最小值,通常对应 C 语言中的 LONG_MIN
math.pi 圆周率
函数 说明
math.max 取最大值
math.min 取最小值
math.ceil 向上取整
math.floor 向下取整
math.modf 分解整数部分和小数部分(向零取整)
math.fmod 计算除法的余数
math.deg 弧度转角度
math.rad 角度转弧度
math.abs 计算绝对值
math.acos 计算反余弦
math.asin 计算反正弦
math.atan 计算反正切
math.cos 计算余弦
math.sin 计算余弦
math.tan 计算正切
math.exp 计算自然常数 的幂
math.log 计算对数
math.sqrt 计算平方根
math.tointeger 转换为整数
math.type 检查类型
math.ult 比较无符号整数大小

#math.abs

math.abs (x)

说明

计算 x 的绝对值。

参数

  • x - 一个数值

返回值

  • 返回 x 的绝对值

#math.acos

math.acos (x)

说明

计算 x 的反余弦。

参数

  • x - 弧度

返回值

  • 返回 x 的反余弦

#math.asin

math.asin (x)

说明

计算 x 的反正弦。

参数

  • x - 弧度

返回值

  • 返回 x 的反正弦

#math.atan

math.atan (y [, x])

说明

计算 y/x 的反正切。

参数

  • y - 弧度的分子
  • x - 弧度的分母;默认为 1

返回值

  • 返回 y/x 的反正切

#math.ceil

math.ceil (x)

说明

x 向上取整,返回大于或等于 x 的最小整数值。

参数

  • x - 一个数值

返回值

  • 返回大于或等于 x 的最小整数值

#math.cos

math.cos (x)

说明

计算 x 的余弦。

参数

  • x - 弧度

返回值

  • 返回 x 的余弦

#math.deg

math.deg (x)

说明

将弧度 x 转换为角度。

参数

  • x - 弧度

返回值

  • 返回弧度 x 对应的角度

#math.exp

math.exp (x)

说明

计算自然常数 ex 次方。

参数

  • x - 指数

返回值

  • 返回

#math.floor

math.floor (x)

说明

x 向下取整,返回小于或等于 x 的最大整数值。

参数

  • x - 一个数值

返回值

  • 返回小于或等于 x 的最大整数值

#math.fmod

math.fmod (x, y)

说明

计算 x 除以 y 的余数,其中商的部分向 0 取整。

参数

  • x - 被除数
  • y - 除数

返回值

  • 返回 x 除以 y 的余数

#math.log

math.log (x [, base])

说明

计算以 base 为底,x 的对数()。

参数

  • x - 真数
  • base - 底数;默认为自然常数

返回值

  • 返回以 base 为底,x 的对数

#math.max

math.max (x, ···)

说明

取最大值。

参数

  • x - 数值
  • ... - 数值

返回值

  • 返回参数中的最大值

#math.min

math.min (x, ···)

说明

取最小值。

参数

  • x - 数值
  • ... - 数值

返回值

  • 返回参数中的最小值

#math.modf

math.modf (x)

说明

分离数值的整数部分和小数部分。

参数

  • x - 要处理的数值

返回值

  • 返回整数部分和小数部分

#math.rad

math.rad (x)

说明

将角度 x 转换为弧度。

参数

  • x - 要转换的角度

返回值

  • 返回角度 x 对应的弧度

#math.sin

math.sin (x)

说明

计算 x 的正弦。

参数

  • x - 弧度

返回值

  • 返回 x 的正弦

#math.sqrt

math.sqrt (x)

说明

计算 x 的平方根。

参数

  • x - 被开方数

返回值

  • 返回 x 的平方根

#math.tan

math.tan (x)

说明

计算 x 的正切。

参数

  • x - 弧度

返回值

  • 返回 x 的正切

#math.tointeger

math.tointeger (x)

说明

将变量 x 转换为整数。

参数

  • x - 要被转换的变量

返回值

  • 成功时返回对应的整数值
  • 失败时返回 nil

#math.type

math.type (x)

说明

检查变量 x 的数值类型。

参数

  • x - 要检查的变量

返回值

  • x 是整数时返回 "integer"
  • x 是小数时返回 "float"
  • x 不是数值时返回 nil

#math.ult

math.ult (m, n)

说明

判断无符号整数 m 是否小于无符号整数 n

  • 如果 mn 是有符号整数,则会被转换为无符号整数
  • 如果 mn 不是整数,则会报错

参数

  • m - 要比较的无符号整数
  • n - 要比较的无符号整数

返回值

  • m n 时返回 true
  • 否则返回 false

#推荐阅读

Mathematical Manipulation - Lua 5.4 Reference Manual


Lua 的 Math 模块》 是转载文章,点击查看原文

相关文章
|
23天前
|
前端开发 JavaScript Ruby
HTML 元素帮助手册
此页面列出了所有使用标签创建的 HTML 元素。它们已被按照功能进行分组,以便更轻松地找到你想要的内容。同时,侧边栏中也按照字母排序列出了所有元素。
|
22天前
|
设计模式 缓存 监控
如何在 Spring 项目中优雅地使用设计模式
本文深入探讨在Spring项目中如何优雅应用设计模式,结合依赖注入与IoC特性,通过工厂、策略、装饰者等模式提升代码可维护性与扩展性,助力构建高效、灵活的Java应用。
229 5
|
17天前
|
Java Spring
IDEA调出services窗口
本教程分两步指导:首先点击指定选项,然后在Templates中添加Spring Boot并应用,即可调出services窗口,快速完成配置。
73 11
|
22天前
|
Prometheus 监控 数据可视化
我用 Spring AOP 做了一个可插拔的日志追踪系统
基于Spring AOP设计的可插拔日志追踪系统,通过注解实现方法级日志监控,无侵入、易配置。支持全局开关、日志级别控制与TraceId链路追踪,有效解耦业务代码与日志逻辑,提升系统可维护性与可观测性。
86 6
|
12天前
|
C++ Python
Qt Theme —— 纯 qss 的 Qt 主题
Qt Theme 是一个纯 QSS 实现的 Qt 主题库,支持 C++ 与 Python(PyQt/PySide),提供多种风格与配色,轻松美化界面。可通过 pip 安装或导出资源嵌入项目,兼容 WebAssembly 在线预览。
172 109
|
16天前
|
NoSQL Java API
Redisson 分布式锁深度解析:API 使用与底层源码探秘
本文深入解析Redisson分布式锁的使用与源码实现,涵盖可重入锁、公平锁、读写锁、红锁等核心API的应用场景与配置方法,并通过Lua脚本、Hash结构和看门狗机制剖析其原子性、重入性与自动续期原理,助力开发者高效安全地实现分布式并发控制。
113 0
|
16天前
|
SQL XML 自然语言处理
Text2SQL 破局技术解析之一:规范文本与灵活性
润乾NLQ创新采用“规范文本”作为中间层,将自然语言转SQL分为三阶段:LLM生成可读的规范文本,用户确认意图后,通过规则引擎转为MQL再生成准确SQL。该方案兼顾灵活性、准确性与复杂查询支持,大幅降低企业实施成本,为人机协同的Text2SQL提供了可行的工程化路径。
|
17天前
|
架构师 Java 程序员
程序员的出路:30岁,我们聊聊那些真实的选择
30岁程序员的迷茫与出路:技术焦虑、薪资倒挂、能力单一困扰着许多人。本文基于真实观察,梳理五条可行路径——深耕技术、理性转管理、务实搞副业、跨界融合、提前布局B计划,并总结三条铁律与自测问题,帮助你在变局中找到方向。出路不在远方,而在你写下的每一行“值钱”的代码里。(238字)
301 117
|
14天前
|
JavaScript Java 关系型数据库
基于springboot的高校科研管理系统
本文设计并实现了一套基于Java、Spring Boot与MySQL的高校科研管理系统,聚焦纵向项目全流程管理。系统涵盖立项、中期检查、结项及经费管理,结合Vue.js构建友好界面,提升管理效率与数据安全性,推动高校科研管理智能化发展。
|
22天前
|
Java 数据库 微服务
Java 学习路线可按「基础→进阶→实战→架构」四阶段推进
Java学习路线分四阶段:基础→进阶→实战→架构。涵盖语法、多线程、框架、微服务等核心内容,搭配项目实战与学习技巧,助你系统掌握Java开发技能,逐步成长为高级工程师。(238字)
163 4