purebasic.info

PureBasic forum
Текущее время: Пн дек 10, 2018 2:06 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: Чт май 22, 2014 6:22 pm 
Не в сети
доцент

Зарегистрирован: Вс мар 16, 2014 5:42 am
Сообщений: 49
Благодарил (а): 7 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Здравствуйте, помогите пожалуйста с такой задачкой:
Требуется получить число из строки в том же виде в котором и было передано.
Пытаюсь с помощью самого очевидного способа:
Код:
1
2
Dg.s = "14.3"
Debug ValF(Dg)


Предполагается что я должен получить число "14.3", но на самом деле получаю "14.30000019073486"
Некоторые числа как "14.5" получаю то же самое число

Дело в том что я получаю текст(оно же число) из StringGadget(), хотелось бы получать более точные числа(учитывая и целые и числа с точкой) без непонятных чисел которые появляются в конце.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт май 22, 2014 6:56 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Вроде как точно числа не получить. Чтобы повысить точность, используйте ValD вместо ValF
Код:
1
2
Dg.s = "14.3"
Debug ValD(Dg)

Данная погрешность будет влиять на расчёты только при очень крупных цифрах

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт май 22, 2014 7:03 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2293
Откуда: Russia — Belarus
Благодарил (а): 7 раз.
Поблагодарили: 72 раз.
Пункты репутации: 11
Вот это:
Pandora писал(а):
Предполагается что я должен получить число "14.3", но на самом деле получаю "14.30000019073486"

Типичная "фича" Float чисел.

Float'ы можно выводить строкой с нужным кол-вом чисел после точки:
Код:
1
Debug StrF(14.30000019073486, 1)


_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт май 22, 2014 7:13 pm 
Не в сети
доцент

Зарегистрирован: Вс мар 16, 2014 5:42 am
Сообщений: 49
Благодарил (а): 7 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
qpAHToMAS спасибо, функция подходит под решение задачи
Никита Однороб вам тоже спасибо, за подходящий тип данных

Цитата:
Это не вяжется с условием

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


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB