

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Jenis numerik
<a name="r_Numeric_types201"></a>

**Topics**
+ [Jenis bilangan bulat](#r_Numeric_types201-integer-types)
+ [Jenis DESIMAL atau NUMERIK](#r_Numeric_types201-decimal-or-numeric-type)
+ [Catatan tentang menggunakan kolom DESIMAL atau NUMERIK 128-bit](#r_Numeric_types201-notes-about-using-128-bit-decimal-or-numeric-columns)
+ [Jenis Floating-Point](#r_Numeric_types201-floating-point-types)
+ [Perhitungan dengan nilai numerik](r_numeric_computations201.md)
+ [Literal integer dan floating-point](r_numeric_literals201.md)
+ [Contoh dengan tipe numerik](r_Examples_with_numeric_types201.md)

Tipe data numerik termasuk bilangan bulat, desimal, dan angka floating-point. 

## Jenis bilangan bulat
<a name="r_Numeric_types201-integer-types"></a>

Gunakan tipe data SMALLINT, INTEGER, dan BIGINT untuk menyimpan seluruh nomor dari berbagai rentang. Anda tidak dapat menyimpan nilai di luar rentang yang diizinkan untuk setiap jenis. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/r_Numeric_types201.html)

## Jenis DESIMAL atau NUMERIK
<a name="r_Numeric_types201-decimal-or-numeric-type"></a>

*Gunakan tipe data DECIMAL atau NUMERIK untuk menyimpan nilai dengan presisi yang ditentukan pengguna.* Kata kunci DECIMAL dan NUMERIK dapat dipertukarkan. Dalam dokumen ini, *desimal* adalah istilah yang disukai untuk tipe data ini. Istilah *numerik* digunakan secara umum untuk merujuk pada tipe data integer, desimal, dan floating-point. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/r_Numeric_types201.html)

*Tentukan kolom DECIMAL dalam tabel dengan menentukan *presisi* dan skala:* 

```
decimal(precision, scale)
```

 *presisi*   
Jumlah total digit signifikan dalam seluruh nilai: jumlah digit di kedua sisi titik desimal. Misalnya, angka tersebut `48.2891` memiliki presisi 6 dan skala 4. Presisi default, jika tidak ditentukan, adalah 18. Presisi maksimum adalah 38.  
 Jika jumlah digit di sebelah kiri titik desimal dalam nilai input melebihi presisi kolom dikurangi skalanya, nilai tidak dapat disalin ke kolom (atau dimasukkan atau diperbarui). Aturan ini berlaku untuk setiap nilai yang berada di luar rentang definisi kolom. Misalnya, rentang nilai yang diizinkan untuk `numeric(5,2)` kolom adalah `-999.99` untuk`999.99`. 

 *skala*   
Jumlah digit desimal di bagian pecahan nilai, di sebelah kanan titik desimal. Bilangan bulat memiliki skala nol. Dalam spesifikasi kolom, nilai skala harus kurang dari atau sama dengan nilai presisi. Skala default, jika tidak ditentukan, adalah 0. Skala maksimum adalah 37.  
Jika skala nilai input yang dimuat ke dalam tabel lebih besar dari skala kolom, nilainya dibulatkan ke skala yang ditentukan. Misalnya, kolom PRICEPAID dalam tabel PENJUALAN adalah kolom DECIMAL (8,2). Jika nilai DECIMAL (8,4) dimasukkan ke dalam kolom PRICEPAID, nilainya dibulatkan ke skala 2.   

```
insert into sales
values (0, 8, 1, 1, 2000, 14, 5, 4323.8951, 11.00, null);

select pricepaid, salesid from sales where salesid=0;

pricepaid | salesid
-----------+---------
4323.90 |       0
(1 row)
```
 Namun, hasil pemeran eksplisit nilai yang dipilih dari tabel tidak dibulatkan.

**catatan**  
Nilai positif maksimum yang dapat Anda masukkan ke dalam kolom DECIMAL (19,0) adalah `9223372036854775807` (2 63 -1). Nilai negatif maksimum adalah`-9223372036854775808`. Misalnya, upaya untuk memasukkan nilai `9999999999999999999` (19 nines) akan menyebabkan kesalahan overflow. Terlepas dari penempatan titik desimal, string terbesar yang dapat diwakili oleh Amazon Redshift sebagai angka DESIMAL adalah. `9223372036854775807` Misalnya, nilai terbesar yang dapat Anda muat ke kolom DECIMAL (19,18) adalah. `9.223372036854775807`  
Aturan-aturan ini karena nilai DECIMAL dengan 19 atau kurang digit presisi signifikan disimpan secara internal sebagai bilangan bulat 8-byte, sedangkan nilai DECIMAL dengan 20 hingga 38 digit presisi signifikan disimpan sebagai bilangan bulat 16-byte. 

## Catatan tentang menggunakan kolom DESIMAL atau NUMERIK 128-bit
<a name="r_Numeric_types201-notes-about-using-128-bit-decimal-or-numeric-columns"></a>

Jangan sewenang-wenang menetapkan presisi maksimum ke kolom DECIMAL kecuali Anda yakin bahwa aplikasi Anda memerlukan presisi itu. Nilai 128-bit menggunakan ruang disk dua kali lebih banyak daripada nilai 64-bit dan dapat memperlambat waktu eksekusi kueri. 

## Jenis Floating-Point
<a name="r_Numeric_types201-floating-point-types"></a>

Gunakan tipe data REAL dan DOUBLE PRECISION untuk menyimpan nilai numerik dengan *presisi variabel*. Jenis ini adalah tipe *yang tidak tepat*, yang berarti bahwa beberapa nilai disimpan sebagai perkiraan, sehingga menyimpan dan mengembalikan nilai tertentu dapat mengakibatkan sedikit perbedaan. Jika Anda memerlukan penyimpanan dan perhitungan yang tepat (seperti untuk jumlah uang), gunakan tipe data DECIMAL.

REAL mewakili format floating point presisi tunggal, menurut IEEE Standard 754 untuk Binary Floating-Point Arithmetic. Ini memiliki presisi sekitar 6 digit, dan kisaran sekitar 1E-37 hingga 1E\$137. Anda juga dapat menentukan tipe data ini sebagai FLOAT4.

DOUBLE PRECISION mewakili format floating point presisi ganda, menurut IEEE Standard 754 untuk Binary Floating-Point Arithmetic. Ini memiliki presisi sekitar 15 digit, dan kisaran sekitar 1E-307 hingga 1E\$1308. Anda juga dapat menentukan tipe data ini sebagai FLOAT atau FLOAT8.

Selain nilai numerik biasa, tipe floating-point memiliki beberapa nilai khusus. Gunakan tanda kutip tunggal di sekitar nilai-nilai ini saat menggunakannya di SQL:
+ `NaN` – not-a-number
+ `Infinity`— tak terhingga
+ `-Infinity`— ketidakterbatasan negatif

Misalnya, untuk not-a-number `day_charge` menyisipkan kolom tabel `customer_activity` menjalankan SQL berikut:

```
insert into customer_activity(day_charge) values('NaN');
```