ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
652806 Топик полностью
fk0, легенда (13.02.2016 00:26, просмотров: 99) ответил VVB на Ну напиши printf("%f",0.00000018738). По умолчанию 6 цифр после точки, выведется 0.000000
Для 32-битного числа с плавающей точкой в формате IEEE-754 (какой-то ламир опять предлагал в бинарном виде записать) точность 7 знаков после запятой (в нормализованном виде). Детали по ссылке. А теперь объясни как ты собираешься такие (с более чем https://en.wikipedia.org/wiki/IEEE_floating_point
7-ю знаками после запятой) числа обрабатывать (если они не 64 бита, конечно), и самое главное зачем вообще нужна такая точность? Ты ж не гравитационные волны обсчитываешь, а инженерными задачами занимаешься, где 7-и знаков после запятой (а у тебя их 11 между прочим) более чем достаточно, а то и те 4-5 что даёт Hitech-C (он же XC8) для pic18 с 24-битным float. Что касается %f, то я совершенно не понимаю, что мешает всегда использовать %e ибо 32-битный float это +-10e38 -- т.е. до 38 нулей может быть подряд! Такие числа не читаются глазами просто. Но если очень уж хочется, то ничто не мешает записать что-то вроде printf("%.*f", 5+ceil(fabs(log(n)/log(10))), n)...
[ZX]