Навигация
 
Главная
Для начинающих
Паскаль/Pascal
Bash

Визуальное программирование
• Visual Basic
• Delphi/Делфи
• C++/Си++/Си
• документация
• Компоненты

WEB программирование
• MySQL/мускул
• Web-дизайн
•• Шрифты
• PHP/Пхп
• Документация PHP
• JavaScript
•• библиотека jquery
•  Документация
Прочее

 
 
Поиск по сайту
 




 
 
О нас
  У нас Вы можете скачать исходники, скачать скрипты, найти исходники, исходники delphi, документация по JQeury, исходники си, учебник HTML  
 
Теги
  codeserfercom, nbspnbsp, Private, Visual, Возможность, Пример, Рассмотрим, Сегодня, Теперь, будет, данных, значение, который, может, можно, написать, например, очень, переменной, переменных, пользователя, помощью, программа, программирования, программы, просто, работы, разработки, решил, сделать, скрипт, строки, строку, также, только, функции, число, этого, языка, языков

Показать все теги
 
 
Счетчики
 
 
 
Реклама
 
Www sexshop ru . Перечень документов для приватизации жилья. Срочной приватизацией жилья. santeknt.ru, федерико.
starrote.ru
 
 
Лучшие коды
   
   
 
Прикол с арифметикой
 Категория: Визуальное программирование » C | автор: Codeserfer | 5 ноября 2009 | Просмотров: 2790  



 
Друг показал мне один прикол с переменными, когда выполняются одни и те же арифметические операции, а выдаются разные результаты.

#include <stdio.h>

int main(void) {
  
  float a = 0.123456, b = 0.13;

  printf("%.30f\n",(float)((a*b)/b));
  printf("%.30f\n",(float)(a*(b/b)));
  
  return 0;
}

Сами подумайте, по законам алгебры переменная b в обоих случаях должна сократиться и остаться только переменная a, значение которой и должно выводиться пользователю. Теперь скомпильте исходник и посмотрите на вывод:
0.123455993831157684326171875000
0.123456001281738281250000000000
Совсем разные числа lol Вот в чем прикол!
 
 

Что-то не получается? Не понятна какая-то часть кода? Напишите комментарий об этом и мы обязательно Вам все объясним!
Обязательно напишите отзыв о программе / учебнике. Для выражения благодарностей есть кнопка:


Своё Спасибо, еще не выражали.
 
  Просьбы перезалить в комментариях принимаются
 
 (голосов: 4)
 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
  Другие коды по теме:  
 
  • Нахождение всех совершенных чисел от 1 до n
  • Открытие CD-ROM
  • Определяем расширение экрана с помощью WinAPI
  • Галерея изображений
  • Обращение к WhoIs для IP на PHP
  •  
    Комментарии (3) Распечатать




     Написал: ISergey
     17 ноября 2009 03:12 | ICQ: --
     

    Группа: Посетители
    Регистрация: 7.07.2009
    Ну так как язык и компилятор не был указан.. то мне Microsoft Visual C++ 2005 выдал такое

    0.123456001281738280000000000000
    0.123456001281738280000000000000

    Intel(R) C++ Compiler тоже самое..
     
     Публикаций: 1 | Комментариев: 10


     Написал: Codeserfer
     17 ноября 2009 16:06 | ICQ: 100105500
     

    Группа: Администраторы
    Регистрация: 1.08.2008
    Я под ggc компиллил в linux
     
     Публикаций: 131 | Комментариев: 108


     Написал: Volk
     31 января 2011 14:29 | ICQ: --
     

    Группа: Посетители
    Регистрация: 31.01.2011
    Школота такая школота... А если раз в жизни книжку открыть, и почитать как происходят вычисления с плавающей запятой? Ты не знал что в операциях с плавающей запятой происходит потеря точности?
    >по законам алгебры...
    С чего это вдруг твой компьютер знает законы алгебры? Ты его научил? Установи MathCAD или Maxima, пиши скрипты в них, и будет тебе алгебра.
    Если прекратить страдать хернёй, освоить наконец стандартную Сишную библиотеку вместо ежедневной дрочки на порнуху, подключить limits.h и посматреть пременную FLT_DIG... СЮРПРИЗ! Он посчитал настолько точно, насколько гарантированно операциями с использованием типа float! Хочешь считать точнее - юзай double, блджад!
    Программа это всегда однозначная последовательность действий, если ты идиот - не вини компьютер или разработчиков компиляторов. Они не виноваты, что разворачивать выражения тебя научили, а на сворачивание мозгов у тебя нехватает. А компилятор перевёл твою программу именно в те инструкции, которые написаны в исходнике.
    Язык Си вообще всегда отличался тем что они никогда за программиста ничего не делает. Всё что ты пишешь на Си воспринимается компилятором буквально и компьютер именно так как написано будет выполнять. Именно поэтому программы на Си так быстры и отличаются небольшим размером. Конечно если у программиста руки прямые. И именно поэтому криворукие мудаки на нём ничего серьёзного не пишут, потому что немогут. Им Python подавай, там и алгебра есть, и garbage collector для мудаков, которые сами за памятью следить не могут. И операцию xor там тоже знать ненадо для быстрого и каноничного обмена местами переменных (где-то тут рядом есть новость с говнокодом недо-Паскалистов по обмену переменных местами...) ненужен, потому что с длинной математикой вообще не нужно помнить о переполнении, а действия и так со скоростью черепахи производятся. И имено поэтому умение писать хорошие программы на Си есть один из самых показательных критериев профессионализма программиста. И именно поэтому программисты на Паскале и Делфи самые низкооплачиваемые.
    P.S. Если бы ты поставил Linux не для фаллометрии, а чтобы использовать его хоть и как менее дружественную к пользователю, но потенциально более совершенную OC. И если бы ты учился не по нигам типа "Как выучить С++ за неделю, каждые сутки занимаясь по 16 часов сном и дрочкой", а нормальным серьёзным учбникам, то ты бы хоть раз открыл ман по GCC. Я всю жизнь в виндах просидел, и то знаю, что у GCC очень неплохой оптимизатор и если ты добавишь в командной строке к вызову GCC что-нить типа -o3, то возможно таки он заметит тавтологию в твоём говнокоде и исправит его.
    Спасибо за внимание.
    С уважением, и ненавистью за распиздяйство и лень...
     
     Публикаций: 0 | Комментариев: 5


    © 2008 - 2010. Копирование материалов запрещено!
    Мой аккаунт
     
    Логин
    Пароль
     
     
     
    Опрос
     
    Чего нам не хватает?

    Ничего, все прекрасно и так!
    Другого дизайна
    Больше кодов
    Больше комментариев
    Посещаемости
    Дополнительных сервисов для удобства пользователей
    Другое (напишите, пожалуйста, что)
     
     
    Друзья
     
    serial, crack, keygen
    cool-archive.ru
    ABC-IT.lv - истиному ИТишнику!
     
     
    Архив кодов
      Август 2011 (1)
    Июль 2011 (4)
    Июнь 2011 (3)
    Апрель 2011 (2)
    Февраль 2011 (5)
    Январь 2011 (3)
     
     
     
    Реклама