GoodWin |
Отправлено: 24.08.2006, 14:43 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 50
|
Здраствуйте.
При возникновении Exception происходит то ли неверное округление, то ли неверный перевод числа в строку . Например вместо "10" получаем "9.99999999999999" . Никто не знает как от этого можно избавиться? Понятно что после перезапуска проги все будет ок, но хотелось бы обмануть пользователя ))) и некоторые ошибки визуально пропускать, записывая их в лог.
Заранее благодарен, GoodWin. |
|
Grigoriy |
Отправлено: 24.08.2006, 19:53 |
|
Мастер участка
Группа: Участник
Сообщений: 381
|
QUOTE (GoodWin @ 24/08/2006, 14:43) | Здраствуйте.
При возникновении Exception происходит то ли неверное округление, то ли неверный перевод числа в строку . Например вместо "10" получаем "9.99999999999999" . Никто не знает как от этого можно избавиться? |
Округлять число до каких нибудь стомиллионных долей...
|
|
GoodWin |
Отправлено: 25.08.2006, 12:25 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 50
|
Ошибка не в числе.
double Val = 10;
String SVal = FloatTostr( Val );
После этого выводим SVal на экран. Видим 9.999999
Если исключительной ситуации не произошло, то все в порядке, выводит 10, в противном случае 9.999999
|
|
Gedeon |
Отправлено: 25.08.2006, 18:27 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Попробуйте сделать нечто типа
Math.hpp не меньше ВСВ6
|
|
GoodWin |
Отправлено: 14.09.2006, 10:31 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 50
|
Нашел я как это иправить. Может кому пригодится
Необходимо при exceptions вызывать
Set8087CW(0x133f); // Disable all fpu exceptions
Мне помогло.
|
|