Проблемы с FloatToStr()

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

property AsFloat: Double read GetAsFloat write SetAsFloat;
откуда берётся тип single?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

кстати - а зачем используеш варианты? может они гонят?
я стремлюсь их любыми средствами избегать, т.к. теряется контроль над типом данных
и вбще - варианты - зло :-)
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Сообщение tria »

alexs писал(а):property AsFloat: Double read GetAsFloat write SetAsFloat;
откуда берётся тип single?


На примере single я показал суть проблемы. Ну нет у меня подходящего примера для double и extended. Но смысл то остается - проблема представления дробных чисел в двоичном виде.
Соответственно, в моем конкретном случае эта проблема вылезла на double.

alexs писал(а):кстати - а зачем используеш варианты? может они гонят?

Варианты я использую потому, что результатом вычисления вводимого пользователем выражения может быть строка, дата, целое число, справочник (по сути - его Id в базе).
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

указанный тобо пример не много (мягко говоря) не коректен
в результате твоих операций происходит преобразования приводящите к потере точности (Double в Sigle)
используй более строгую типизацию
- если у тебя подразумеваются деньги - используй Currency
по моему просто всёже ты не правильно подходиш к объявлению данных.
если уж так тебе критично чтобы оператора сами набирали структуру таблиц - предоставь им преобпределённый выбор типов полей - с которыми гарантированно нет мороки - для денег, для ко-ва товаров и т.д.

P.S. хотя я уже ранее излагал свою точку зрения - что разработчик должен заботится о структурах данных, о интрфейсе и т.д. - а оператор должен работать в программе - а незаниматься исправлением плюх и не доделок разработчика.
Ответить