Флейм
GameDev.ru / Флейм / Форум / Замена семейства sprintf/sscanf (2 стр)

Замена семейства sprintf/sscanf (2 стр)

Страницы: 1 2
FordPerfectПостоялецwww11 фев. 201823:51#15
Если вдруг интересно, я могу больше ссылок накидать, про тонкости корректной печати плавучки.
Ghost2Постоялецwww12 фев. 201810:29#16
FordPerfect

> Если нужен корректно-округленный printf, так от выделения памяти сложно избавиться.
Ну да, я тут немножко недооценил проблему.

> можно сделать с константной памятью (хотя их реализация таблицу юзает)
У меня голый %f используется только в scanf. Вся печать идет с указанием точности.

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

1 frag / 2 deathsУчастникwww12 фев. 201812:49#17
Ghost2
> У меня голый %f используется только в scanf.
Э, ты передаёшь дабл по указателю в функцию, ждущую флоат?
Ghost2Постоялецwww12 фев. 201813:42#18
1 frag / 2 deaths

> Э, ты передаёшь дабл по указателю в функцию, ждущую флоат?
Я передаю указатель на флоат в функцию, ждущую указатель на флоат.
А даблы вообще не используются.

Правка: 12 фев. 2018 13:42

FordPerfectПостоялецwww12 фев. 201816:54#19
Ghost2
> Кидай, лишним не будет.
Посты:
http://www.ryanjuckett.com/programming/printing-floating-point-numbers/ - годный обзорный пост
https://randomascii.wordpress.com/2013/02/07/float-precision-revi… -portability/ , https://randomascii.wordpress.com/2012/03/08/float-precisionfrom-… 100-digits-2/ - посты от Bruce Dawson
На сайте http://www.exploringbinary.com/ куча деталей и примеров того, как люди это фейлят:
http://www.exploringbinary.com/inconsistent-rounding-of-printed-f… oint-numbers/
http://www.exploringbinary.com/incorrect-floating-point-to-decimal-conversions/
http://www.exploringbinary.com/incorrectly-rounded-conversions-in… -c-plus-plus/
http://www.exploringbinary.com/incorrectly-rounded-conversions-in… cc-and-glibc/
http://www.exploringbinary.com/correctly-rounded-conversions-in-gcc-and-glibc/
http://www.exploringbinary.com/gcc-conversions-are-incorrect-arch… or-otherwise/
http://www.exploringbinary.com/real-c-rounding-is-perfect-gcc-now… ts-correctly/
http://www.exploringbinary.com/decimal-to-floating-point-needs-ar… ry-precision/

Дофига: http://www.exploringbinary.com/topics/#correctly-rounded-decimal-… loating-point .

Статьи:
How to Print Floating-Point Numbers Accurately
How to Read Floating Point Numbers Accurately
Correctly Rounded Binary-Decimal and Decimal-Binary Conversions
Printing Floating-Point Numbers Quickly and Accurately
Printing Floating-Point Numbers Quickly and Accurately with Integers
Printing Floating-Point Numbers. An Always Correct Method.

Код:
http://www.netlib.org/fp/dtoa.c - de-facto реализация

Правка: 12 фев. 2018 17:00

Ghost2Постоялецwww13 фев. 201811:21#20
FordPerfect

Спасибо, почитаю. По проблеме же, пока склоняюсь к тому, чтобы выкинуть libc из кода.
А может весь стартап код и обработку прерываний/исключений напишу сам.

FordPerfectПостоялецwww26 мар. 201817:51#21
А ведь http://en.cppreference.com/w/cpp/utility/to_chars заявляют неаллоцирующий. Мне аж прямо интересно.
Panzerschrek[CN]Участникwww26 мар. 201818:06#22
FordPerfect
> заявляют неаллоцирующий
Наконец то, в 2017 году таки запилили преобразование числа в строку без выделения памяти.
FordPerfectПостоялецwww26 мар. 201818:34#23
Для плавучки не реализовали:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/in… /std/charconv
FordPerfectПостоялецwww27 мар. 20184:20#24
Вот буквально пару дней раньше:
https://github.com/apple/swift/pull/15474
Страницы: 1 2

/ Форум / Флейм / Программирование

2001—2018 © GameDev.ru — Разработка игр