Re[4]: C# - идея расширения для where - новое ограничение дл
От: barn_czn  
Дата: 13.01.10 08:31
Оценка:
Здравствуйте, venicum, Вы писали:

V>Здравствуйте, barn_czn, Вы писали:


_>>Но дело ведь не в представлении таких чисел, а преобразовании типов.

_>>Создать переменную float f = 0.001f я могу, double d = 0.001 — тоже могу. Какова ж черта d != (double)f ?

V>Честно, после того когда давненько прочитал стандарты IEEE, меня такое не удивляет.

V>p.s.
V>В принципе при сравнении двух дробных чисел нельзя использовать явную проверку на равенство, нужно проверять
V>является ли модуль разности менее какой-либо точности, определенной для данной задачи.

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

А реальная проблема вот в чем. Некий метод делает вычисления на float-ах. Далее результат этого метода попадает в другой метод где уже вычисления ведутся на double, т.е. входные данные — аргумент double. А в результате такова кривого приведения получается что входные данные с ошибкой пришли.

И это мне очень не нравится. Победил пока это двойным приведением (double)(decimal)f. Костыль конечно, но работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.