float
浮点数内置类型。
描述
float 内置类型是 64 位双精度浮点数,相当于 C++ 中的 double
。这个类型有 14 个可靠的十进制小数位精度。float 的最大值约为 1.79769e308
,最小值约为 -1.79769e308
。
不过引擎中的许多方法和属性默认使用的都是 32 位单精度浮点数,相当于 C++ 中的 float
,有 6 位可靠的十进制小数位精度。Godot 在 Vector2 和 Vector3 等数据结构中默认使用 32 位浮点数,但如果 Godot 编译时使用了 precision=double
选项,就会改为 64 位的 double。
使用 float 类型进行的数学运算无法保证精确与稳定,经常会产生较小的误差。你通常应该使用 @GlobalScope.is_equal_approx 和 @GlobalScope.is_zero_approx 方法来比较 float 值是否相等,不应该用 ==
。
教程
构造函数
float ( ) | |
操作符
operator != ( float right ) | |
operator != ( int right ) | |
operator ( Quaternion right ) | |
operator + ( float right ) | |
operator + ( int right ) | |
operator - ( float right ) | |
operator - ( int right ) | |
operator / ( float right ) | |
operator / ( int right ) | |
operator < ( float right ) | |
operator < ( int right ) | |
operator <= ( float right ) | |
operator <= ( int right ) | |
operator == ( float right ) | |
operator == ( int right ) | |
operator > ( float right ) | |
operator > ( int right ) | |
operator >= ( float right ) | |
operator >= ( int right ) | |
operator unary+ ( ) | |
operator unary- ( ) |
构造函数说明
float float ( )
构造默认初始化的 float,会被设为 0.0
。
构造给定 float 的副本。
将 String 转换为 float,遵循与 String.to_float 相同的规则。
将 bool 值转换为浮点值,float(true)
将等于 1.0,float(false)
将等于 0.0。
将 int 值转换为浮点值,float(1)
将等于 1.0
。
操作符说明
bool operator != ( float right )
如果两个浮点数彼此不同,则返回 true
。
注意:@GDScript.NAN 的行为与其他数字不同。因此,如果包含 NaN,则这个方法的结果可能不准确。
bool operator != ( int right )
如果整数的值与浮点数不同,则返回 true
。
Color operator * ( Color right )
将该 Color 的每个分量乘以给定的 float,包括 Alpha。
print(1.5 * Color(0.5, 0.5, 0.5)) # 输出“(0.75, 0.75, 0.75, 1.5)”
Quaternion operator * ( Quaternion right )
将该 Quaternion 的每个分量乘以给定的 float。此操作本身没有意义,但可以用作更大表达式的一部分。
Vector2 operator * ( Vector2 right )
将该 Vector2 的每个分量乘以给定的 float。
print(2.5 * Vector2(1, 3)) # 输出 "(2.5, 7.5)"
Vector2 operator * ( Vector2i right )
将该 Vector2i 的每个分量乘以给定的 float。返回的是 Vector2。
print(0.9 * Vector2i(10, 15)) # 输出 "(9, 13.5)"
Vector3 operator * ( Vector3 right )
将该 Vector3 的每个分量乘以给定的 float。
Vector3 operator * ( Vector3i right )
将该 Vector3i 的每个分量乘以给定的 float。返回的是 Vector3。
print(0.9 * Vector3i(10, 15, 20)) # 输出 "(9, 13.5, 18)"
Vector4 operator * ( Vector4 right )
将该 Vector4 的每个分量乘以给定的 float。
Vector4 operator * ( Vector4i right )
将该 Vector4i 的每个分量乘以给定的 float。返回的是 Vector4。
print(0.9 * Vector4i(10, 15, 20, -10))# 输出 "(9, 13.5, 18, -9)"
float operator * ( float right )
将两个 float 相乘。
float operator * ( int right )
将 float 和 int 相乘。结果是 float。
float operator ** ( float right )
将 float 提升到 float 次幂。
print(39.0625**0.25) # 2.5
float operator ** ( int right )
将 float 提升到 int 次幂。结果为 float。
print(0.9**3) # 0.729
float operator + ( float right )
将两个浮点数相加。
float operator + ( int right )
将 float 加上 int。结果为 float。
float operator - ( float right )
将一个浮点数减去另一个浮点数。
float operator - ( int right )
将 float 减去 int。结果为 float。
float operator / ( float right )
将两个浮点数相除。
float operator / ( int right )
将 float 除以 int。结果是 float。
bool operator < ( float right )
如果左侧的浮点数小于右侧的,则返回 true
。
注意:@GDScript.NAN 的行为与其他数字不同。因此,如果包含 NaN,则这个方法的结果可能不准确。
如果该 float 小于给定的 int,则返回 true
。
bool operator <= ( float right )
如果左侧的浮点数小于等于右侧的,则返回 true
。
注意:@GDScript.NAN 的行为与其他数字不同。因此,如果包含 NaN,则这个方法的结果可能不准确。
bool operator <= ( int right )
如果该 float 小于等于给定的 int,则返回 true
。
bool operator == ( float right )
如果两个浮点数完全相等,则返回 true
。
注意:由于浮点精度误差,考虑改用更可靠的 @GlobalScope.is_equal_approx 或 @GlobalScope.is_zero_approx。
注意:@GDScript.NAN 的行为与其他数字不同。因此,如果包含 NaN,则这个方法的结果可能不准确。
bool operator == ( int right )
如果该 float 等于给定的 int,则返回 true
。
bool operator > ( float right )
如果左侧的浮点数大于右侧的,则返回 true
。
注意:@GDScript.NAN 的行为与其他数字不同。因此,如果包含 NaN,则这个方法的结果可能不准确。
如果该 float 大于给定的 int,则返回 true
。
bool operator >= ( float right )
如果左侧的浮点数大于等于右侧的,则返回 true
。
注意:@GDScript.NAN 的行为与其他数字不同。因此,如果包含 NaN,则这个方法的结果可能不准确。
bool operator >= ( int right )
如果该 float 大于等于给定的 int,则返回 true
。
float operator unary+ ( )
返回与 +
不存在时相同的值。单目 +
没有作用,但有时可以使你的代码更具可读性。
float operator unary- ( )
返回该 float 的相反数。如果为正数,则将该数变为负数。如果为负数,则将该数变为正数。对于浮点数,数字零既可以是正数,也可以是负数。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.