почему на выходе имеем нули вместо 732.00000???
хотел вывести любой целый тип принтэфом через спецификатор для плавающих и столкнулся с нулями, хочу узнать почему так, на молекулярном уровне
>>1859696Потому что ты %f написал, долбаёб.
>>1859704я ска в курсе, а почему так происходит то, поясни
бамп
>>1859714Потому что создатели языка решили, что нужен модификатор для десятичного числа с плавающей точкой и сделали для него текстовое обозначение в виде %fне занимайся программированием
>>1859719ало, читать умеешь? я спросил почему так происходит, я знаю что для плавающих %f а для целых %d, как получаются нули на выходе? до меня препод в шараге доебался, а я объяснить не могу
>>1859723НАХУЙ_СЪЕБАЛ_ОТСЮДА_ГНИЛЬ
>>1859724мамка твоя гнильчо ты пояснить то не можешь, тупой чтоле?
>>1859723Преборазования типов? Нет не слышал.
>>1859725такой неотёсанной свинье что-то пояснить?упаси Господь
гспди, мне всего то нужно понять как работает этот код, я не ставлю цель вывести переменную правильно, мне не нужны преобразования типов и проч. я хочу разобраться что происходит в принтэфе, как он выводит эту переменную, по сути он что %f, что %d должен брать со стека 4 байта но интерпритировать их по разному(тобишь целое или плавающее) но происходит то что я понять не могу
>>1859693 (OP)Ты разделом ошибся, мань. В /pr/ тебе объяснят почему у <название_говноязыка_погроммирования>, работает все через жопу и почему это лучшее решение в мире. В /s/ сидят нормальные люди, которые используют пограммирование исключительно с практической стороны.
>>1859749единственный годный ответ, спасибо, а то эти дурачки бестолковые только срать могут :D
>>1859755Блять, неужели не догнать, что принтф не умеет в приведение типов и при попытке обработать инт как флоат сразу завершает работу? Посмотри код vprintf гнутой, она вызывается гнутым принтф. Чтобы твое говно сработало, тебе надо самому привести тип к флоат.
>>1859782Вот тебе еще в догонку, прямо из гугла....if type is not compatible with the type of the actual next argument (as promoted according to the default argument promotions), the behavior is undefined, except for the following cases: — one type is a signed integer type, the other type is the corresponding unsigned integer type, and the value is representable in both types; — one type is pointer to void and the other is a pointer to a character type.Пиздец ты тугой.
>>1859741>я хочу разобраться что происходит в принтэфе, как он выводит эту переменнуюgoogle -> printf source code. Дальше сам
>>1859693 (OP)потому что ты не все цифры вывел. float и int имеют размер по 4 байта, старший бит - знак (он у тебя +), экспонента и мантисса. Экспонента у тебя 0, значит число в денормализованной форме. Просто ты не вывел значащие биты.
test
cout << (float)a << endl;
>>1859693 (OP)1. https://2ch.pm/pr2. sage
>>1859723В памяти целые числа и числа с плавающей точкой хранятся в разных двоичных форматах. Чтобы работать быстро а получается все равно медленно форматирование printf занимается байтоебством, и рассчитывает что ты её не наебешь с типами. Ты пользуешь функцию неправильно >> на выходе получаешь хуйню, все правильно. Компилятор это должен прожевать, так как синтаксически все верно, но скорее всего напишет тебе варн но ты - мудак, и проигноришь его.алсо, printf - это поток вывода в стиле си возможно этого от тебя и требует олдфаг-препод, мужики если делают это на C++, пишут через std::cout.