The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Tipe yang menyimpan angka dengan tempat desimal – float, double
Tipe data ini sering disebut tipe data floating-point. Angka-angka tersebut disebut sebagai angka floating-point .
mengambang fvar = 50,15; dvar ganda = 50,0;
Bandingkan tipe data floating-point – float dan double
Perbedaan antara tipe data float dan double terletak pada ketepatan jumlah tempat desimal.
Berdasarkan spesifikasi VexOS – ARM 7, float dapat menangani 6 atau 7 tempat, dan double dapat menangani 15 atau 16.
float: dalam V5os saat ini, pengontrol tampaknya memungkinkan presisi hingga 8 tempat desimal.
misalnya
mengapung fvar1 = 1.12345670; mengapung fvar2 = 1.12345678;
fval1 berbeda dari fvar2,
melawan
mengapung fvar1 = 1.123456780; mengapung fvar2 = 1.123456781;
fval1 akan dievaluasi sama seperti fvar2.
double: memungkinkan presisi hingga 17 tempat desimal.
misalnya
ganda dvar1 = 1.12345678912345678; ganda dvar2 = 1.12345678912345670;
dval1 berbeda dari dvar2,
melawan
ganda dvar1 = 1.123456789123456789; ganda dvar2 = 1.123456789123456780;
dval1 akan dievaluasi sama seperti dvar2.
Jangan gunakan "ganda" kecuali Anda membutuhkan presisi tinggi
Ada dua alasan mengapa Anda tidak boleh menggunakan "ganda" kecuali Anda membutuhkan presisi tinggi:
- Memerlukan tipe float 2X.
- Membutuhkan daya pemrosesan yang jauh lebih tinggi.
Berdasarkan spesifikasi VexOS – ARM 7, float dapat menangani 6 atau 7 tempat, dan double dapat menangani 15 atau 16. Dalam kedua kasus tersebut, Anda tidak boleh bergantung pada keakuratan digit terakhir dalam double atau float. Ini disimpan sangat berbeda dari menyimpan "int" karena sesuatu yang disebut "perhitungan titik mengambang" (yang berada di luar cakupan artikel ini).
Dengan demikian, Anda mungkin kehilangan keakuratan pada beberapa tempat desimal terakhir.
Operasi pada double cukup mahal dibandingkan dengan float, dan jauh lebih mahal daripada “integer” karena adanya sesuatu yang disebut kalkulasi floating-point.
Berdasarkan standar IEEE, berikut ini berada dalam rentang yang lebih dapat diandalkan.
| Jenis | Nilai Positif Terkecil | Nilai Positif Terbesar | # Presisi |
|---|---|---|---|
| mengambang | 10 -38 x 1,17549 | 10 38 x 3.40282 | 6 angka |
| dobel | 10 -308 atau 2.22507 | 10 308 x 1.79769 | 15 angka |
Bisakah Anda menukar tipe data primitif? - Pengecoran
Dimungkinkan untuk menukar tipe data. Teknik ini disebut “Casting.” Meski casting merupakan praktik yang umum, lakukan itu hanya jika diperlukan.
Salah satu praktik yang paling umum adalah menukar char dan int.
Hal ini karena keduanya mewakili nilai integer dengan satu pengecualian:
- “int” berisi 4-byte (atau 8-byte di beberapa kompiler)
- “char” hanya berisi 1-byte.
Jadi, misalnya
karakter aVal = 100; int iVal = aVal; // transmisi implisit
atau
int iVal = (char) aVal; // casting eksplisit.
Perhatian terhadap pemotongan implisit:
misalnya
Praktik umum lainnya adalah menukar int dan float
float fVal = 5.486; float fraction = fVal - (int)fVal; //ya: 5.486 - 5
Perhatian terhadap pemotongan implisit:
misalnya
int iVal = 50; float fVal = iVal / 100;
sekarang fVal = 0,0, BUKAN 0,5.
Tidak masalah untuk memanfaatkan pemotongan implisit, yang sering kali merupakan bagian penting dari operasi dalam beberapa skenario. Akan tetapi, Anda perlu memastikan bahwa Anda menggunakan teknik ini sesuai desain.
Jika Anda tidak ingin pemotongan implisit terjadi, Anda perlu melakukan pengecoran eksplisit:
- pengecoran implisit:
float fVal = iVal / 100.0; - pengecoran eksplisit:
float fVal = (float) iVal / 100