Pertanyaan tentang C programming

K

km

Guest
Program rutin: --ftov float ()(int a;printf ( "\ n \ nEnter nomor:");scanf ( "% d", & a);OUT = 0,000040955 * a;printf ( "\ n OUT =% f \ n", OUT);kembali OUT;)Ketika seorang = 10000, OUT = 0,40955
Tapi mengapa ketika seorang = 100.000, OUT memberikan nilai negatif (-1,272554) bukannya 4,0995:?:

 
hai
.

i think u harus mencoba kode yang sama di microsoft VC compiler.

yang masalah kompiler u mungkin menggunakan 16 atau 32 bit compiler.
u mungkin akan mencoba kode ini di TC, thats y nya tidak berfungsi

 
Sejalan

int a;

int adalah 16 bit nilai.Nilai 100.000 adalah 0x186a0, dan ketika Anda menetapkan nilai = 100.000 dipotong hingga 16 bit, maka variabel yang sama untuk 0x86a0.0x86a0 nilai sama dengan nilai -31.072, sehingga Anda mendapatkan nilai (-1,272554) bukan 4,0995.

Anda harus mengganti baris
int a;
dengan
lama;

Regards, svicent

 

Welcome to EDABoard.com

Sponsor

Back
Top