[ HTML ] [ Java ] [ Bahasa C ]


Minggu, Mei 02, 2021

Perbedaan Float dan Double pada Bahasa C

Untuk menampilkan angka float, maka digunakan tipe data float, double, dan long double.

Apakah perbedaan kedua tipe data tersebut?
double memiliki dua kali lebih banyak presisi dibandingkan dengan float.

float adalah 32 bit IEEE 754 presisi tunggal floating point number bit, dimana float memiliki 7 decimal digit presisi.

double adalah 64 IEEE 754 double presisi floating point number, dimana double memiliki 15 desimal digit presisi.

Ambil contoh berikut ini: untuk persamaan kuadrat X2 - 4,0000000x + 3,9999999 = 0, nilai akar yang tepat untuk 10 digit signifikan adalah r1=2,000316228 dan r2=1,999683772.

// Perbedaan antara float dan

// double pada bahasa C

 

// Program bahasa C yang

// mendemonstrasikan

 

// nilai presisis float

// dan double

#include <stdio.h>

#include <math.h>

 

// Fungsi utilitas yang meng-

// kalkulasi akar kuadrat

 

// dari persamaan yang meng-

// gunakan nilai double

void double_solve(double a, double b, double c)

{

double d = b*b - 4.0*a*c;

double sd = sqrt(d);

double r1 = (-b + sd) / (2.0*a);

double r2 = (-b - sd) / (2.0*a);

printf("%.5f\t%.5f\n", r1, r2);

}

 

// Fungsi utilitas yang meng-

// kalkulasi akar kuadrat

 

// dari persamaan yang meng-

// gunakan nilai float

void float_solve(float a, float b, float c)

{

float d = b*b - 4.0f*a*c;

float sd = sqrtf(d);

float r1 = (-b + sd) / (2.0f*a);

float r2 = (-b - sd) / (2.0f*a);

printf("%.5f\t%.5f\n", r1, r2);

}

 

// Menjalankan program

int main()

{

float fa = 1.0f;

float fb = -4.0000000f;

float fc = 3.9999999f;

double da = 1.0;

double db = -4.0000000;

double dc = 3.9999999;

 

printf("persamaan akar dari x2"

" - 4.0000000 x + 3.9999999 ="

" 0 adalah : \n");

 

printf("untuk nilai float "

": \n");

float_solve(fa, fb, fc);

 

printf("untuk nilai double"

": \n");

double_solve(da, db, dc);

 

return 0;

}

Output:
persamaan akar dari x2 - 4.0000000 x + 3.9999999 = 0 adalah :
untuk nilai float :
2.00000    2.00000
untuk nilai double :
2.00032    1.99968

7 komentar:

  1. Apa yang dimaksud dengan float pada bahasa C?

    BalasHapus
    Balasan
    1. float adalah istilah singakt dari "Floating point". Menurut definisi, tipe data float adalah tipe data fundamental yang dibangun ke dalam kompilator yang digunakan untuk menentukan nilai numerik dengan titik desimal yang mengambang.

      Hapus
    2. Tipe data float menyimpan bilangan floating point dengan presisi ganda hingga 17 digit signifikan dengan kisaran nilai untuk tipe data float adalah sama dengan kisaran tipe data doublle pada bahasa C.

      Hapus
  2. Apa yang dimaksud dengan tipe data double pada bahasa C?

    BalasHapus
    Balasan
    1. Double adalah tipe data fundamental yang dibangun ke dalam kompilator dan digunakan untuk mendefinisikan variabel numerik yang menyimpan angka dengan titik desimal.

      Hapus
  3. Apa perbedaan antara tipe data double dan tipe data float pada bahasa C?

    BalasHapus
    Balasan
    1. Tipe data double memiliki presisis dua kali lebih banyak daripada tipe data float.

      Hapus

Respon komentar 7 x 24 jam, so please be patient :D