| Предыдущий | Следующий |
| RPC_S_FP_DIV_ZERO | RPC_S_FP_OVERFLOW |
RPC_S_FP_UNDERFLOW
Вычисление сервера дало величину ниже поддерживаемого диапазона
RPC_S_FP_UNDERFLOW является арифметическим исключением сервера, наблюдаемым через RPC. Вычисление в процедуре диспетчера дало результат, слишком малый для активного режима плавающей точки, и вызвало исключение. Уровень NDR может передавать float и double; он не определяет числовой допуск сервера или политику исключений.
Проверьте стек сервера, масштаб входных данных, нормализацию и управляющее слово плавающей точки. Определите, допустимо ли постепенное потеря точности при слишком малых значениях или алгоритм должен масштабировать значения до вычисления. Если входные данные поступают удалённо, применяйте реалистичные минимальные величины и единицы на границе приложения, а не полагайтесь на платформенно-зависимые маски исключений.
Что проверить
- Запишите точные числовые входные значения и единицы, дошедшие до сервера.
- Сравните оптимизированную и отладочную сборки на различия среды плавающей точки.
- Добавьте проверку диапазона или устойчивое масштабирование там, где ожидаются очень малые значения.
Ссылки
- Microsoft: базовые типы плавающей точки RPC
- Microsoft: обработка исключений сервера
- Microsoft: определения статусов RPC
Нужно найти другой код? Найти другой код состояния или ошибки.