Objective-C中double的范围是多少?

时间:2011-05-01 22:17:02

标签: objective-c

我有一个计算距离很远的程序。然后我使用stringfromnumber转换距离(双倍)以插入逗号(即1,234,567)。只要距离低于2,000,000,000,这种方法就可以正常工作。每当我超过20亿时,我得到的负数也不是正确的距离。通过查看帮助,我似乎完全在双倍的范围内。有什么想法吗?

2 个答案:

答案 0 :(得分:8)

您可以查看自己的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;
}

答案 1 :(得分:5)

双重可以容纳从无穷大到负无穷大的任何东西。但它只能准确地保持15位数。另外,请记住,如果将其转换为int并且double存储大于2,147,483,648的内容,则int将溢出为负数。