каков диапазон двойного в Objective-C? - PullRequest
3 голосов
/ 02 мая 2011

У меня есть программа, в которой я рассчитываю большие расстояния.Затем я конвертирую расстояние (двойное), используя stringfromnumber, чтобы вставить запятые (то есть 1 234 567).Это работает нормально, если расстояние меньше 2 000 000 000.Каждый раз, когда я превышаю 2 миллиарда, я получаю отрицательное число, которое также не является правильным расстоянием.От проверки помощи я, кажется, хорошо в диапазоне двойного.Есть идеи?

Ответы [ 2 ]

8 голосов
/ 02 мая 2011

Вы можете проверить, что у вас есть float.h, чтобы узнать DBL_MAX. Я получил значение 1.797693e + 308 от:

#include <stdio.h>
#include <float.h>

int main ( void ) {
    printf("Max double %e \n", DBL_MAX);
    return 0;
}
5 голосов
/ 02 мая 2011

Двойник может содержать что угодно от бесконечности до отрицательной бесконечности. Однако он может содержать только 15 цифр. Кроме того, имейте в виду, что если вы приведете его к типу int, а двойное число хранит нечто большее, чем 2 147 483 648, то int переполнится отрицательным числом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...