-
- Ты главное в коде не заметил, это * и width. А %.3d нет по
очевидной причине, у "d" отсутствует дробная часть. - Tahoe3A(Вчера, 20:40,
)
- Ну это только проблему с заменой нулей на пробелы помогает решить.
У меня на весь проект единственный раз понадобилось, обошел. А вот
"искусственная" дробная часть - в 90% случаев. Или хранить всё в
плавучке - память позволяет, или каждый раз делить при выводе. И
ещё - width задаёт минимальную длину. А в моих самописных функциях
- максимальную, и если число не лезет, оно заменяется на ####. А
лид.пробелы делаются установкой lead_zero=2 (1-нули, 0-ничего). - Idler(Вчера, 21:11 - 21:20)
- А это единственная серьезная проблема. Все остальные, от
непонимания. Нет никакой "искусственной" дробной части. Нужна
дробная часть - есть float. Нужна дробная часть в рамках
целочисленных инструкций - бери Q-формат. Лишь бы собственные
нестандартные printf не изобретал. - Tahoe3A(Вчера, 21:16,
)
- Ещё во времена ЕС-эвм мы писали "FORMAT +##.###" для вывода вполне
себе целочисленного числа. Это моё личное дело, как хранить число,
и как его понимать при выводе. Если я говорю, что это число "на
самом деле" - десятичное с ФИКСИРОВАННОЙ точкой и тремя знаками
после неё, то ЕС-ка "отдавала честь" и делала. А если нынче для
этого нужно преобразовать в плавучку и поделить - это комп должен
сам делать, не отвлекая меня на такие глупости. - Idler(Вчера, 21:31)
- "Целочисленное, с тремя точками после", навеяло: Tahoe3B(19 знак., Вчера, 21:47,
, ссылка)
- Компилятору-то какое дело? Тут уже упомянули q32(q16). То есть теми
же 16 двоичными битами обозначается число не целое от 0 до 65535, a
дробное от 1 до 2. И это только один из вариантов числа с
фиксированной точкой, который и сейчас широко применяется в DSP. - Idler(Вчера, 22:59)
- А что, float в этом смысле чем-то отличается от int32 или q31? - Tahoe3B(Вчера, 23:30,
)
- А что, float в этом смысле чем-то отличается от int32 или q31? - Tahoe3B(Вчера, 23:30,
- Компилятору-то какое дело? Тут уже упомянули q32(q16). То есть теми
же 16 двоичными битами обозначается число не целое от 0 до 65535, a
дробное от 1 до 2. И это только один из вариантов числа с
фиксированной точкой, который и сейчас широко применяется в DSP. - Idler(Вчера, 22:59)
- Какая-то каша в голове. Какая связь, между системой счисления
(десятеричной, двоичной - пофиг) и форматом представления int или
float? Что значит "я хочу", "я говорю"? Как математики придумали,
так и будет. И комп или язык программирования здесь никоим боком. - Tahoe3B(Вчера, 21:43,
)
- Причем тут математики. Вот, совсем простой пример: есть старый (сейчас не так) цифровой вольтметр. Положение запятой определяется только переключателем предела измерения, меняющим также входной делитель. Чип об этой запятой вообще не в курсе, для него это число - целое. Я хочу, чтобы в команде формата была опция такого переключателя. - Idler(Вчера, 23:43)
- "Целочисленное, с тремя точками после", навеяло: Tahoe3B(19 знак., Вчера, 21:47,
- Ещё во времена ЕС-эвм мы писали "FORMAT +##.###" для вывода вполне
себе целочисленного числа. Это моё личное дело, как хранить число,
и как его понимать при выводе. Если я говорю, что это число "на
самом деле" - десятичное с ФИКСИРОВАННОЙ точкой и тремя знаками
после неё, то ЕС-ка "отдавала честь" и делала. А если нынче для
этого нужно преобразовать в плавучку и поделить - это комп должен
сам делать, не отвлекая меня на такие глупости. - Idler(Вчера, 21:31)
- А это единственная серьезная проблема. Все остальные, от
непонимания. Нет никакой "искусственной" дробной части. Нужна
дробная часть - есть float. Нужна дробная часть в рамках
целочисленных инструкций - бери Q-формат. Лишь бы собственные
нестандартные printf не изобретал. - Tahoe3A(Вчера, 21:16,
- Ну это только проблему с заменой нулей на пробелы помогает решить.
У меня на весь проект единственный раз понадобилось, обошел. А вот
"искусственная" дробная часть - в 90% случаев. Или хранить всё в
плавучке - память позволяет, или каждый раз делить при выводе. И
ещё - width задаёт минимальную длину. А в моих самописных функциях
- максимальную, и если число не лезет, оно заменяется на ####. А
лид.пробелы делаются установкой lead_zero=2 (1-нули, 0-ничего). - Idler(Вчера, 21:11 - 21:20)
- Ты главное в коде не заметил, это * и width. А %.3d нет по
очевидной причине, у "d" отсутствует дробная часть. - Tahoe3A(Вчера, 20:40,