powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
7 сообщений из 7, страница 1 из 1
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32579871
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
float ggg=StrToFloat("29,10"); ->дает ggg=29,10000318

Как с этим бороться, ведь должно получиться 29,100000000
...
Рейтинг: 0 / 0
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32580120
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sfsffloat ggg=StrToFloat("29,10"); ->дает ggg=29,10000318

Как с этим бороться, ведь должно получиться 29,100000000
Бороться придётся с дискретной областью значений типа данных. Это, сам понимаешь, затея бессмысленная. Смирись. Ну, в крайнем случае, попробуй double - там разрядность мантиссы больше.
...
Рейтинг: 0 / 0
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32580619
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну еще можеш попробывать округлять...
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32581497
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция RoundTo()
Но она не работает ????


Как float округлить, например до 4 знаков после запятой
...
Рейтинг: 0 / 0
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32582517
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С той же проблемой бьёмся.

Копался во float ничё не понял...

Округлять лучше в строке... Правда потом всё-равно во флоат переностить...
...
Рейтинг: 0 / 0
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32582755
Ярослав Татаренко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sfsffloat ggg=StrToFloat("29,10"); ->дает ggg=29,10000318

Как с этим бороться, ведь должно получиться 29,100000000

А что собственно Вам не нравится? 0,00000318 укладывается в требования к точности по IEEE. Пытаться как-либо округлить у вас не получится, т.к. при любой операции над числами с плавающей точкой производится нормализация операндов . Именно эта операция и дает погрешности.
...
Рейтинг: 0 / 0
float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
    #32582784
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак float округлить, например до 4 знаков после запятой

Умножить на 10000, преобразовать к целому типу, разделить на 10000.0f ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / float ggg=StrToFloat("29,10"); ->дает ggg=29,00000318
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]