Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.07.2014, 17:24   #1
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию Неправильное преобразование Single в String

Всем привет.

Столкнулся с проблемой при преобразовании дробного числа в строку, и не знаю как быть.

Допустим есть код:
Код:
var
 s: single;
begin
 s := 102.1;
 ShowMessage(FloatToStr(s));
Но он возвращает не 102.1, а 102,099998474121. Почему?
И как в результате преобразования получить именно 102.1?
Xo66um вне форума
Старый 13.07.2014, 17:35   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

http://www.delphibasics.ru/FloatToStrF.php
eoln вне форума
Старый 13.07.2014, 18:20   #3
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию

Ближе, конечно, но я изначально не знаю, какое вернется значение, а обрезать его - недопустимо.
Xo66um вне форума
Старый 13.07.2014, 18:23   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

для чего вам в строку перегонять?
eval вне форума
Старый 13.07.2014, 18:32   #5
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию

Это имеет значение? Для визуального восприятия.
Xo66um вне форума
Старый 13.07.2014, 18:48   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

конечно имеет, например если вы в xml гоните, то не важно как уходит
если пользователю, то ему 10 знаков после запятой - страшно и не понятно
eval вне форума
Старый 13.07.2014, 19:05   #7
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию

Нет, у меня запросы обыкновенные. Главное, чтобы значение преобразовалось в строку, и осталось таким же, каким и пришло.
Например, пришло 116.1738892, и преобразоваться должно в 116.1738892. Проблема только в том, что гугл постоянно выдает мне FloatToStr, а он, как уже можно было заметить - калечит значение. И я уже не знаю что делать, неужели никто этим вопросом не задавался все это время?
Xo66um вне форума
Старый 13.07.2014, 19:14   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Главное, чтобы значение преобразовалось в строку, и осталось таким же, каким и пришло
А в каком оно виде пришло? Если в виде двоичного вещественного числа, то с этим ни чего не поделать. Просто привычное десятичное 0.1 в двоичном виде представляет из себя бесконечную периодическую дробь. А разрядов маловато, вот и имеем, что имеем.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 13.07.2014, 19:26   #9
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию

Нет, оно приходит в виде дробного числа, из другой программы, где хранится с типом Float. Ко мне приходит в тип Single.
Xo66um вне форума
Старый 13.07.2014, 19:35   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Нет, у меня запросы обыкновенные. Главное, чтобы значение преобразовалось в строку, и осталось таким же, каким и пришло.
без доп. условий - никак, а вы про них не хотите говорить
eval вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ преобразование enum в string world12_tk Помощь студентам 14 04.10.2011 03:28
Преобразование boll к string Bizunov Помощь студентам 3 24.05.2011 17:55
Преобразование Char string SL1CK Общие вопросы Delphi 8 11.01.2010 22:35
Преобразование int в String^ в С++ Mixasik Помощь студентам 1 21.06.2009 18:57
Single to String? Blondinka Общие вопросы Delphi 7 24.09.2007 17:36