--- title: number - 数字 summary: Lua 数字通常使用 double。不要直接将超过 53 位的整数标识符转换为 number,否则可能丢失精度。tonumber 可能返回 nil。 section: reference kind: guide status: reference updated: 2026-10-26 tags: ["API","X4"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/","https://www.lua.org/manual/5.1/manual.html","https://luajit.org/ext_ffi_api.html"] --- ## 含义 Lua 数字通常使用 double。不要直接将超过 53 位的整数标识符转换为 number,否则可能丢失精度。tonumber 可能返回 nil。 ## 示例 ```lua local amount = tonumber("12") if amount ~= nil then amount = math.max(0, amount) end ``` **运行效果:** 总数 = 12;math.max保持不变,因为12比零大. 这段段没有打印或写日志信息. 显示的值是示例的预期结果. ## 方法与相关调用 | 函数 | 返回 | 用途 | | --- | --- | --- | | [math.abs](wiki:api-standard-math-abs-e3c883a9) | [`number`](wiki:type-number) | 返回绝对值. | | [math.asin](wiki:api-standard-math-asin-0ff09b19) | [`number`](wiki:type-number) | 返回射线的弧线. | | [math.atan2](wiki:api-standard-math-atan2-b4fe910e) | [`number`](wiki:type-number) | 返回从y和x的半径中一个四角形意识角. | | [math.ceil](wiki:api-standard-math-ceil-bb032e94) | [`number`](wiki:type-number) | 圆向最小整数,大于或等于值. | | [math.cos](wiki:api-standard-math-cos-4a293dba) | [`number`](wiki:type-number) | 返回一个角的角在射线数中. | | [math.deg](wiki:api-standard-math-deg-6ef5ae35) | [`number`](wiki:type-number) | 转换射线为度. | | [math.floor](wiki:api-standard-math-floor-5776363e) | [`number`](wiki:type-number) | 圆向最大整数,小于或等于值. | | [math.max](wiki:api-standard-math-max-4dc62550) | [`number`](wiki:type-number) | 返回最大的数值参数. | | [math.min](wiki:api-standard-math-min-9b2931d6) | [`number`](wiki:type-number) | 返回最小的数值参数. | | [math.rad](wiki:api-standard-math-rad-1bbc48b1) | [`number`](wiki:type-number) | 转换为射线. | | [math.random](wiki:api-standard-math-random-d0204929) | [`number`](wiki:type-number) | 返回一个伪随机值: [0,1) 没有边界,从1到1的整数,有一个边界,或两个边界之间的整数. | | [math.sin](wiki:api-standard-math-sin-cd360f65) | [`number`](wiki:type-number) | 返回一个角的阴影在射线. | | [math.sqrt](wiki:api-standard-math-sqrt-b3c6fba6) | [`number`](wiki:type-number) | 返回正方根. |