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

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

Страницы: 1 2
#15
23:51, 11 фев 2018

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

#16
10:29, 12 фев 2018

FordPerfect

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

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

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

#17
12:49, 12 фев 2018

Ghost2
> У меня голый %f используется только в scanf.
Э, ты передаёшь дабл по указателю в функцию, ждущую флоат?

#18
13:42, 12 фев 2018

1 frag / 2 deaths

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

#19
16:54, 12 фев 2018

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 реализация

#20
11:21, 13 фев 2018

FordPerfect

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

#21
17:51, 26 мар 2018

А ведь http://en.cppreference.com/w/cpp/utility/to_chars заявляют неаллоцирующий. Мне аж прямо интересно.

#22
18:06, 26 мар 2018

FordPerfect
> заявляют неаллоцирующий
Наконец то, в 2017 году таки запилили преобразование числа в строку без выделения памяти.

#23
18:34, 26 мар 2018

Для плавучки не реализовали:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/in… /std/charconv

#24
4:20, 27 мар 2018

Вот буквально пару дней раньше:
https://github.com/apple/swift/pull/15474

Страницы: 1 2
ФлеймФорумПрограммирование

Тема в архиве.