Форум программистов, компьютерный форум CyberForum.ru

почему DBL_MIN=0? непонятно - C++

Восстановить пароль Регистрация
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
18.05.2012, 10:34     почему DBL_MIN=0? непонятно #1
хочу получить min значение типа double, но мне он почему-то выдает 0, хотя DBL_MAX работает хорошо.

вот код
C
1
2
3
4
5
6
7
8
9
#include<float.h>
#include<stdio.h>
#include<stdlib.h>
 
 
void main()
{
printf("DBL_MAX=%f   DBL_MIN=%f",DBL_MAX,DBL_MIN);
}

результат работы кода

DBL_MAX=17976931348623157000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000.0
00000 DBL_MIN=0.000000

почему здесь DBL_MIN=0.000000????объясните плиз...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 10:34     почему DBL_MIN=0? непонятно
Посмотрите здесь:

C++ Непонятно
Непонятно условие C++
C++ Почему программа вылетает при конкатенации строк?
Домашка по C++,непонятно! C++
C++ Непонятно почему ведёт себя так программа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
18.05.2012, 10:55     почему DBL_MIN=0? непонятно #2
DBL_MIN - наименьшее по модулю из возможных число. Если нужно наименьшее отрицательное: -DBL_MAX.

Добавлено через 9 минут
upd: наврал, не ноль конечно:
C++
1
2
3
4
5
6
7
8
9
10
#include <limits>
#include <iostream>
 
 
int main() {
   std::cout << "double min (fixed) = " << std::fixed << std::numeric_limits<double>::min() << std::endl;
   std::cout << "double min (scientific) = " << std::scientific << std::numeric_limits<double>::min() << std::endl;
   std::cout << "double max (fixed) = " << std::fixed << std::numeric_limits<double>::max() << std::endl;
   std::cout << "double max (scientific) = " << std::scientific << std::numeric_limits<double>::max() << std::endl;
}
http://liveworkspace.org/code/25b43f...148da1ac318a40
kozlik_kozlik
7 / 11 / 0
Регистрация: 01.08.2012
Сообщений: 99
23.09.2012, 22:00     почему DBL_MIN=0? непонятно #3
Ну чувак, у тебя спецификация-то какая, чо тут удивительного.
Юзай %e вместо %f, и будет тебе счастье.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
23.09.2012, 22:05     почему DBL_MIN=0? непонятно #4
gray_fox, не в тему, но все же, зачем все время писать std:: если проще 1 раз прописать using
для понта?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
23.09.2012, 22:14     почему DBL_MIN=0? непонятно #5
Цитата Сообщение от Kgfq Посмотреть сообщение
gray_fox, не в тему, но все же, зачем все время писать std:: если проще 1 раз прописать using
для понта?
Это более консервативный стиль.
Yandex
Объявления
23.09.2012, 22:14     почему DBL_MIN=0? непонятно
Ответ Создать тему
Опции темы

Текущее время: 02:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru