#7
by みけCAT » 6年前
もっと高い精度で表示してみましょう。
コード:
#include <stdio.h>
int main (void)
{
double d;
for (d = 1.0; (int)d <= 9; d = d + 0.1)
printf("d = %.30lf, (int)(%lf) = %d\n", d, d, (int)d);
return 0;
}
実行結果の一部
コード:
d = 3.800000000000002486899575160351, (int)(3.800000) = 3
d = 3.900000000000002575717417130363, (int)(3.900000) = 3
d = 4.000000000000002664535259100376, (int)(4.000000) = 4
d = 4.100000000000002309263891220326, (int)(4.100000) = 4
d = 4.200000000000001953992523340276, (int)(4.200000) = 4
d = 4.300000000000001598721155460225, (int)(4.300000) = 4
d = 4.400000000000001243449787580175, (int)(4.400000) = 4
d = 4.500000000000000888178419700125, (int)(4.500000) = 4
d = 4.600000000000000532907051820075, (int)(4.600000) = 4
d = 4.700000000000000177635683940025, (int)(4.700000) = 4
d = 4.799999999999999822364316059975, (int)(4.800000) = 4
d = 4.899999999999999467092948179925, (int)(4.900000) = 4
d = 4.999999999999999111821580299875, (int)(5.000000) = 4
d = 5.099999999999998756550212419825, (int)(5.100000) = 5
d = 5.199999999999998401278844539775, (int)(5.200000) = 5
d = 5.299999999999998046007476659724, (int)(5.300000) = 5
d = 5.399999999999997690736108779674, (int)(5.400000) = 5
d = 5.499999999999997335464740899624, (int)(5.500000) = 5
d = 5.599999999999996980193373019574, (int)(5.600000) = 5
d = 5.699999999999996624922005139524, (int)(5.700000) = 5
d = 5.799999999999996269650637259474, (int)(5.800000) = 5
d = 5.899999999999995914379269379424, (int)(5.900000) = 5
d = 5.999999999999995559107901499374, (int)(6.000000) = 5
もっと高い精度で表示してみましょう。
[code=c]
#include <stdio.h>
int main (void)
{
double d;
for (d = 1.0; (int)d <= 9; d = d + 0.1)
printf("d = %.30lf, (int)(%lf) = %d\n", d, d, (int)d);
return 0;
}
[/code]
[url=https://wandbox.org/permlink/k659VGFXBnHtX8d1]実行結果[/url]の一部
[code=text]
d = 3.800000000000002486899575160351, (int)(3.800000) = 3
d = 3.900000000000002575717417130363, (int)(3.900000) = 3
d = 4.000000000000002664535259100376, (int)(4.000000) = 4
d = 4.100000000000002309263891220326, (int)(4.100000) = 4
d = 4.200000000000001953992523340276, (int)(4.200000) = 4
d = 4.300000000000001598721155460225, (int)(4.300000) = 4
d = 4.400000000000001243449787580175, (int)(4.400000) = 4
d = 4.500000000000000888178419700125, (int)(4.500000) = 4
d = 4.600000000000000532907051820075, (int)(4.600000) = 4
d = 4.700000000000000177635683940025, (int)(4.700000) = 4
d = 4.799999999999999822364316059975, (int)(4.800000) = 4
d = 4.899999999999999467092948179925, (int)(4.900000) = 4
d = 4.999999999999999111821580299875, (int)(5.000000) = 4
d = 5.099999999999998756550212419825, (int)(5.100000) = 5
d = 5.199999999999998401278844539775, (int)(5.200000) = 5
d = 5.299999999999998046007476659724, (int)(5.300000) = 5
d = 5.399999999999997690736108779674, (int)(5.400000) = 5
d = 5.499999999999997335464740899624, (int)(5.500000) = 5
d = 5.599999999999996980193373019574, (int)(5.600000) = 5
d = 5.699999999999996624922005139524, (int)(5.700000) = 5
d = 5.799999999999996269650637259474, (int)(5.800000) = 5
d = 5.899999999999995914379269379424, (int)(5.900000) = 5
d = 5.999999999999995559107901499374, (int)(6.000000) = 5
[/code]