[問題] double 值比較大小
以下是小弟寫的一個開根號程式
//程式碼:
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
double i,j,k;
printf("請輸入一個您想要開根號的值:");
scanf("%lf",&i);
printf("orign : %lf \n",i);
for(j=0;;j=j+0.1)
{
if( (j*j) >i)
{
printf("j: %lf , i: %lf \n",j*j,i); //印出來是 j: 16.00000 i: 16.00000
break;
}
}
k=j-0.1;
printf("您輸入的值經過開根號為:+%-lf\n",k);
// system("pause");
return 0;
}
問題:
不知為什麼 輸入 16 的情況下,它的結果不會是 4?
為什麼上面會在 j*j 和 i值一樣時,進入if裡呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.2.142
→
01/29 05:09, , 1F
01/29 05:09, 1F
→
01/29 05:10, , 2F
01/29 05:10, 2F
→
01/29 05:11, , 3F
01/29 05:11, 3F
→
01/29 05:12, , 4F
01/29 05:12, 4F
→
01/29 05:16, , 5F
01/29 05:16, 5F
→
01/29 05:17, , 6F
01/29 05:17, 6F
→
01/29 05:41, , 7F
01/29 05:41, 7F
推
01/29 11:58, , 8F
01/29 11:58, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章