Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

float

Встроенный тип для чисел с плавающей точкой.

Описание

Встроенный тип float — это 64-битное число с плавающей запятой двойной точности, эквивалентное double в C++. Этот тип имеет 14 надежных десятичных знаков точности. Максимальное значение float приблизительно равно 1.79769e308, а минимальное — приблизительно -1.79769e308.

Многие методы и свойства в движке используют вместо этого 32-битные числа с плавающей запятой одинарной точности, эквивалентные float в C++, которые имеют 6 надежных десятичных знаков точности. Для структур данных, таких как Vector2 и Vector3, Godot по умолчанию использует 32-битные числа с плавающей запятой, но его можно изменить на использование 64-битных чисел двойной точности, если Godot скомпилирован с опцией precision=double.

Математические вычисления с использованием типа float не гарантируют точности и часто приводят к небольшим ошибкам. Обычно следует использовать методы @GlobalScope.is_equal_approx() и @GlobalScope.is_zero_approx() вместо == для сравнения значений float на равенство.

Примечание: В контексте логических значений, значение float будет оцениваться как false, если оно точно равно 0.0, и как true в противном случае.

Обучающие материалы

Конструкторы

float

float()

float

float(from: float)

float

float(from: String)

float

float(from: bool)

float

float(from: int)

Операторы

bool

operator !=(right: float)

bool

operator !=(right: int)

Color

operator *(right: Color)

Quaternion

operator *(right: Quaternion)

Vector2

operator *(right: Vector2)

Vector2

operator *(right: Vector2i)

Vector3

operator *(right: Vector3)

Vector3

operator *(right: Vector3i)

Vector4

operator *(right: Vector4)

Vector4

operator *(right: Vector4i)

float

operator *(right: float)

float

operator *(right: int)

float

operator **(right: float)

float

operator **(right: int)

float

operator +(right: float)

float

operator +(right: int)

float

operator -(right: float)

float

operator -(right: int)

float

operator /(right: float)

float

operator /(right: int)

bool

operator <(right: float)

bool

operator <(right: int)

bool

operator <=(right: float)

bool

operator <=(right: int)

bool

operator ==(right: float)

bool

operator ==(right: int)

bool

operator >(right: float)

bool

operator >(right: int)

bool

operator >=(right: float)

bool

operator >=(right: int)

float

operator unary+()

float

operator unary-()


Описания конструктора

float float() 🔗

Создает инициализированное по умолчанию float, установленное на 0.0.


float float(from: float)

Создает float как копию заданного float.


float float(from: String)

Преобразует String в float, следуя тем же правилам, что и String.to_float().


float float(from: bool)

Приведите значение bool к значению с плавающей точкой, float(true) будет равно 1,0, а float(false) будет равно 0,0.


float float(from: int)

Приведите значение int к значению с плавающей точкой, float(1) будет равно 1.0.


Описания оператора

bool operator !=(right: float) 🔗

Возвращает true, если два числа с плавающей точкой отличаются друг от друга.

Примечание: @GDScript.NAN ведет себя не так, как другие числа. Поэтому результаты этого оператора могут быть неточными, если включены NaN.


bool operator !=(right: int) 🔗

Возвращает true, если целое число имеет значение, отличное от плавающего.


Color operator *(right: Color) 🔗

Умножает каждый компонент Color, включая альфа, на заданный float.

print(1.5 * Color(0.5, 0.5, 0.5)) # Выводит (0.75, 0.75, 0.75, 1.5)

Quaternion operator *(right: Quaternion) 🔗

Умножает каждый компонент Quaternion на заданный float. Эта операция сама по себе не имеет смысла, но ее можно использовать как часть большего выражения.


Vector2 operator *(right: Vector2) 🔗

Умножает каждый компонент Vector2 на заданный float.

print(2.5 * Vector2(1, 3)) # Выводит (2.5, 7.5)

Vector2 operator *(right: Vector2i) 🔗

Умножает каждый компонент Vector2i на заданный float. Возвращает Vector2.

print(0.9 * Vector2i(10, 15)) # Выводит (9.0, 13.5)

Vector3 operator *(right: Vector3) 🔗

Умножает каждый компонент Vector3 на заданное float.


Vector3 operator *(right: Vector3i) 🔗

Умножает каждый компонент Vector3i на заданный float. Возвращает Vector3.

print(0.9 * Vector3i(10, 15, 20)) # Выводит (9.0, 13.5, 18.0)

Vector4 operator *(right: Vector4) 🔗

Умножает каждый компонент Vector4 на заданное float.


Vector4 operator *(right: Vector4i) 🔗

Умножает каждый компонент Vector4i на заданный float. Возвращает Vector4.

print(0.9 * Vector4i(10, 15, 20, -10)) # Выводит (9.0, 13.5, 18.0, -9.0)

float operator *(right: float) 🔗

Умножает два числа float.


float operator *(right: int) 🔗

Умножает float и int. Результат — float.


float operator **(right: float) 🔗

Возводит float в степень float.

print(39.0625**0.25) # 2.5

float operator **(right: int) 🔗

Возводит float в степень int. Результат — float.

print(0.9**3) # 0.729

float operator +(right: float) 🔗

Складывает два float'а.


float operator +(right: int) 🔗

Складывает float и int. Результат — float.


float operator -(right: float) 🔗

Вычитает число с плавающей точкой из числа с плавающей точкой.


float operator -(right: int) 🔗

Вычитает int из float. Результат — float.


float operator /(right: float) 🔗

Делит два числа с плавающей точкой.


float operator /(right: int) 🔗

Делит float на int. Результат — float.


bool operator <(right: float) 🔗

Возвращает true, если левое число с плавающей точкой меньше правого.

Примечание: @GDScript.NAN ведет себя не так, как другие числа. Поэтому результаты этого оператора могут быть неточными, если включены NaN.


bool operator <(right: int) 🔗

Возвращает true, если это float меньше указанного int.


bool operator <=(right: float) 🔗

Возвращает true, если левое число с плавающей точкой меньше или равно правому.

Примечание: @GDScript.NAN ведет себя не так, как другие числа. Поэтому результаты этого оператора могут быть неточными, если включены NaN.


bool operator <=(right: int) 🔗

Возвращает true, если это float меньше или равно заданному int.


bool operator ==(right: float) 🔗

Возвращает true, если оба числа с плавающей точкой в точности равны.

Примечание: Из-за ошибок точности чисел с плавающей точкой рассмотрите возможность использования @GlobalScope.is_equal_approx() или @GlobalScope.is_zero_approx() вместо этого, которые более надежны.

Примечание: @GDScript.NAN ведет себя не так, как другие числа. Поэтому результаты этого оператора могут быть неточными, если включены NaN.


bool operator ==(right: int) 🔗

Возвращает true, если float и заданное int равны.


bool operator >(right: float) 🔗

Возвращает true, если левое число с плавающей точкой больше правого.

Примечание: @GDScript.NAN ведет себя не так, как другие числа. Поэтому результаты этого оператора могут быть неточными, если включены NaN.


bool operator >(right: int) 🔗

Возвращает true, если это float больше указанного int.


bool operator >=(right: float) 🔗

Возвращает true, если левое число с плавающей точкой больше или равно правому.

Примечание: @GDScript.NAN ведет себя не так, как другие числа. Поэтому результаты этого оператора могут быть неточными, если включены NaN.


bool operator >=(right: int) 🔗

Возвращает true, если это float больше или равно заданному int.


float operator unary+() 🔗

Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.


float operator unary-() 🔗

Возвращает отрицательное значение float. Если положительное, делает число отрицательным. Если отрицательное, делает число положительным. С float число ноль может быть как положительным, так и отрицательным.