Какой результат получим если разделить int на 0 и float на 0 ?
Спросят с вероятностью 8%
Разделение числа на 0 — это особый случай в программировании, и поведение зависит от типа чисел. Для целочисленных и чисел с плавающей запятой поведение при делении на 0 различается.
Деление целого числа на 0
Если попытаться разделить целое число (
Этот код приведет к панике с ошибкой вида:
Деление числа с плавающей запятой на 0
Если разделить число с плавающей запятой (
В этом примере:
✅Деление положительного числа на 0 дает положительную бесконечность (
✅Деление отрицательного числа на 0 дает отрицательную бесконечность (
✅Деление нуля на ноль дает
✅Деление целого числа на 0 в Go вызывает паническое состояние (runtime panic).
✅Деление числа с плавающей запятой на 0 в Go приводит к бесконечности (
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Спросят с вероятностью 8%
Разделение числа на 0 — это особый случай в программировании, и поведение зависит от типа чисел. Для целочисленных и чисел с плавающей запятой поведение при делении на 0 различается.
Деление целого числа на 0
Если попытаться разделить целое число (
int
, int32
, int64
и т.д.) на 0, то Go вызовет паническое состояние (runtime panic). Это происходит потому, что целочисленное деление на 0 является неопределенной операцией.package main
func main() {
var a int = 10
var b int = 0
result := a / b
fmt.Println(result)
}
Этот код приведет к панике с ошибкой вида:
panic: runtime error: integer divide by zero
Деление числа с плавающей запятой на 0
Если разделить число с плавающей запятой (
float32
, float64
) на 0, то Go не вызовет паники. Вместо этого будут использованы специальные значения IEEE 754: положительная бесконечность, отрицательная бесконечность или NaN (Not a Number), в зависимости от знака числителя.package main
import (
"fmt"
"math"
)
func main() {
var a float64 = 10.0
var b float64 = 0.0
// Деление положительного числа на 0
positiveInf := a / b
fmt.Println("Positive Infinity:", positiveInf) // Вывод: Positive Infinity: +Inf
// Деление отрицательного числа на 0
negativeInf := -a / b
fmt.Println("Negative Infinity:", negativeInf) // Вывод: Negative Infinity: -Inf
// Деление нуля на ноль
zeroDivZero := b / b
fmt.Println("Zero divided by Zero:", zeroDivZero) // Вывод: Zero divided by Zero: NaN
// Проверка значений
fmt.Println("Is Inf:", math.IsInf(positiveInf, 1)) // true
fmt.Println("Is Inf:", math.IsInf(negativeInf, -1)) // true
fmt.Println("Is NaN:", math.IsNaN(zeroDivZero)) // true
}
В этом примере:
✅Деление положительного числа на 0 дает положительную бесконечность (
+Inf
).✅Деление отрицательного числа на 0 дает отрицательную бесконечность (
-Inf
).✅Деление нуля на ноль дает
NaN
.✅Деление целого числа на 0 в Go вызывает паническое состояние (runtime panic).
✅Деление числа с плавающей запятой на 0 в Go приводит к бесконечности (
+Inf
, -Inf
) или NaN
без вызова паники.👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых