Membuat Variabel Float dan Double di VEXcode Pro V5

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:

  1. Memerlukan tipe float 2X.
  2. 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

Diagram yang mengilustrasikan fitur pemrograman sistem robotika V5, menyoroti komponen dan koneksi utama untuk pemrograman robot yang efektif.

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

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: