Division by zero ошибка

Обновлено: 03.07.2024

по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 10.0: Divide by zero error encountered.
HRESULT=80040E14, SQLSrvr: SQLSTATE=22012, state=1, Severity=10, native=8134, line=1

Знаю, что программа делит на "0", но вот где . Ошибка ссылается на следующую функцию.

Функция СформироватьЗапросПоТабличнойЧасти(ДокументОбъект, ИмяТабличнойЧасти, СтруктураПолей,
СтруктураСложныхПолей = Неопределено) Экспорт

Для Каждого Реквизит Из СтруктураПолей Цикл

ТекстЗапроса = ТекстЗапроса + ",
|Док." + Реквизит.Значение +
" КАК " + СокрЛП(Реквизит.Ключ);

Запрос = Новый Запрос;

Если ТипЗнч(СтруктураСложныхПолей) = Тип("Структура") Тогда // Добавим к запросу конструкции.

Для Каждого Элемент Из СтруктураСложныхПолей Цикл

ТекстЗапроса = ТекстЗапроса + ",
| " + Элемент.Значение +
" КАК " + СокрЛП(Элемент.Ключ);

Если СтруктураСложныхПолей.Свойство("Проект") Тогда

ТекстСоединение + ДокументМетаданные.Имя + "."+ СокрЛП(ИмяТабличнойЧасти) + " ГДЕ Ссылка = &ДокументСсылка)) КАК ПроектыНоменклатуры
|ПО Док.Номенклатура=ПроектыНоменклатуры.НоменклатураПроекта";

Запрос.УстановитьПараметр("ДатаДок",ДокументОбъект.Дата);
КонецЕсли;
КонецЕсли;

Запрос.Текст + ТекстЗапроса + "
| ИЗ
| Документ." + ДокументМетаданные.Имя + "."+ СокрЛП(ИмяТабличнойЧасти) +
" КАК Док"+ТекстСоединение+"
| ГДЕ Док.Ссылка = &ДокументСсылка";


// Установим параметры запроса.
Запрос.УстановитьПараметр("ДокументСсылка" , ДокументОбъект.Ссылка);

Если ДокументОбъект[ИмяТабличнойЧасти].Количество() = 0 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ Док.Ссылка = &ДокументСсылка", "ГДЕ ЛОЖЬ");
КонецЕсли;

Деление на ноль невозможно. Эта ошибка имеет следующие причину и решение:

Значение используемого в качестве делителя выражения является нолем.

Проверьте правильность написания переменных в выражении. Неправильно написанное название переменной может незаметно создать числовую переменную, которая примет значение ноля. Проверьте предыдущие операции на переменных в выражении, особенно тех, которые были переданы в процедуру в качестве аргументовиз других процедур.

Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Division by zero isn't possible. This error has the following cause and solution:

The value of an expression being used as a divisor is zero.

Check the spelling of variables in the expression. A misspelled variable name can implicitly create a numeric variable that is initialized to zero. Check previous operations on variables in the expression, especially those passed into the procedure asarguments from other procedures.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Код.
from colorama import init
from colorama import Fore, Back, Style

print("здравствуйте! Это калькулятор индекса массы тела")

a= float(input ("введи вес в кг: "))

if a <= (0):
print("вы не ввели число")
a= float(input ("введи вес в кг: "))

b= float(input ("введи рост в метрах: "))
if b <= (0):
print("вы не ввели число")
b= float(input ("введи рост в метрах: "))

if b == 0:
print("Упс, где-то ошибачка. Проверьте введённые числа")
print("вес " + str(a) + "рост" + str(b))
input

if c <= (1):
print("Упс, где то ошибочка. ваш индекс массы тела = 1")

elif c <= (16):
print(str(c) + " Ярко выроженный дефицит массы тела")

elif c <= (18):
print(str(c) + " Дефицит массы тела")

elif c <= (25):
print(str(c) + " Норма")

elif c <= (30):
print(str(c) + " Предожирение")

elif c <= (35):
print(str(c) + " Ожирение 1 степени")

elif c <= (40):
print(str(c) + " Ожирение 2 степени")

elif c >= (40):
print(str(c)+"Ожирение 3 степени")


input ("exit")

. Гений (78261) Николай Бессмертный, return или sys.exit() н-р

d=[
" Ярко выраженный дефицит массы тела",
" Дефицит массы тела",
" Норма",
" Предожирение",
" Ожирение 1 степени",
" Ожирение 2 степени",
" Ожирение 3 степени"
]

a=float(input('Рост в метрах '))

b=float(input('Вес в килограммах '))

if 1<b<500: ans=1
imt=b/a**2
print (round(imt))
if imt<=16: i=0
elif imt<=18: i=1
elif imt<=25: i=2
elif imt<=30: i=3
elif imt<=35: i=4
elif imt<=40: i=5
else: i=6
print (f'Поздравляю! У Вас ')

Читайте также: