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

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 число ноль может быть как положительным, так и отрицательным.