私は文字列を持っており、そのtemp[256]
中に などの二重数があり0.125
、すべてがうまくいっていますが、 のよう0.888888888888888888888888888888888888888883
に二重数には大きすぎる数値を取得する場合があり、二重数は の代わりに7つの数値のようにしか保持されません全て。
文字列を double に変換するために を使用してきましたがatof
、すべての数値に十分なスペースがないため、問題は double にあると思います....これは私が書いたものです:
char temp[256]; // Has the number inside it
double temp_num = 0; // need to put the string inside this variable
temp_num = atof(temp);
printf ("%f\n", temp_num);
数字がゼロの後の7桁より大きくない限り、印刷からの出力は問題ありませんが、の0.8815818188888888888888888888888888888888888888888143
ような数字の場合、最初の7桁のみが印刷されます。この例では8815818
、代わりに印刷されます整数...だから、もっと大きな変数が必要だと思いますか?