Вопросы связанные с типом "double"
От: esud http://esud.info
Дата: 01.05.18 01:59
Оценка:
Добрый день! Я сейчас изучаю язык C и столкнулся с вещами, которые на первый взгляд нелогичны.
Смотрите вопросы в коде с примерами:

#include <stdio.h>
#include <float.h>
int main(int argc, char *argv[])
{
    double x = 999999999999999.99;
    printf("%.2lf\n", x); //почему здесь вывод будет "1000000000000000.00" а не "999999999999999.99"?

    x = DBL_MAX;
    x = x - 1;
    if(DBL_MAX == x) {printf("DBL_MAX == DBL_MAX - 1\n");} //почему программа отображает эту строчку?

    x = 999999999999.12;
    printf("%lf\n", x); //почему здесь выводится "999999999999.119995" а не "999999999999.12"?
}


Буду благодарен если кто-то из профессионалов даст ответы на данные вопросы.
esud.info
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.