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