aardio 文档

builtin.math 库模块帮助文档

math 成员列表 #

math.e #

自然对数的底数,约等于 2.718281828459 。

math.isFinite() #

如果参数是一个有效数值,
并且不是正负无穷大则返回 true,否则返回 false。
如果传入字符串会直接返回 false

math.isInteger() #

参数是一个数值并且是整数返回true,否则返回false。
如果传入字符串会直接返回 false

math.isSize64() #

判断参数是否 math.size64 长整数对象

math.mulDiv(a,b,c) #

返回a乘b再除以c的结果,并自动四舍五入转为整数
可尽量使运算不会溢出,运算错误则返回-1

注意这个函数是系统 API 函数,
参数只能传入数值不能传入字符串

math.round #

四舍五入,舍入规则以取整为例:
小数小于0.5取相邻的绝对值更小的整数,
小数大于0.5取相邻的绝对值更大的整数,
小数等于0.5取相邻的正无穷大方向的整数。

注意四舍五入非常多的规则,
各种语言的默认实现并不完全一致,
计算机浮点数都存在可容忍的精度误差

math.round(数值,精度) #

四舍五入取接近的数,
精度指定小数后的位数,默认为0(取整)

math.roundToEven #

银行家舍入法,
舍入规则为:尾数四舍六入,五后为零前凑偶(只看一位零,用于修正浮点误差)。
用于解决 1 到 9 出现机率一样,5到9进位导致进多舍少的问题。

aardio 取整默认使用标准银行家舍入法,
只有需要指定精度时才有必要使用 math.roundToEven 。

注意四舍五入存在不同规则,各语言默认实现并非完全一致,
计算机浮点数也存在可容忍的误差。

math.roundToEven(数值,精度) #

使用改良版银行家舍入法转换并返回参数@1指定的数值,
参数@2指定返回数值的小数位数,默认为0(也就是取整)

math.stringify #

将数值转换为字符串。
可避免使用科学计数法,也不会在小数后补 0 。

aardio 在将数值转换为字符串时,
大于等于 1e14 或者小于 1e-4 (即 0.0001) 的数默认以科学计数法表示。
等价于调用 string.format 函数并将格式化代码指定为 %.14g

math.stringify(数值,最大小数位) #

返回的字符串不使用科学计数法,小数尾部不会补 0。
此函数使用区域设置的小数点,需要自定义小数点请改用 tostring 函数。

math.validateRange(length,startIndex,endIndex) #

校验并转换基于 1 的索引范围数值。
省略 startIndex 则默认为 1,省略 endIndex 则默认为 length。
如果 startIndex 或 endIndex 为负数则按尾部倒计数并转换为正值,-1 表示最后一个。
如果转换后 startIndex 小于 1 则设为 1,如果 endIndex 大于 length 则设为 length。\如果 startIndex,endIndex 都指定正整数,则可以省略 length(不校验最大长度)。

转换后如果 startIndex 大于 endIndex 则返回 null,
否则返回转换后的 startIndex,endIndex

Markdown 格式