Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
Artikel ini menguraikan sintaksis dan penggunaan nilai numerik di PowerShell.
Deskripsi panjang
Ada dua jenis literal numerik: bilangan bulat dan nyata. Keduanya dapat memiliki akhiran jenis dan pengali.
Literal bilangan bulat
Literal bilangan bulat dapat ditulis dalam notasi desimal atau heksadesimal. Literal heksadesimal diawali dengan 0x untuk membedakannya dari angka desimal.
Literal bilangan bulat dapat memiliki akhiran jenis dan akhiran pengali.
| Akhiran | Makna |
|---|---|
l |
tipe data panjang |
kb |
pengali kibibyte (10241) |
mb |
pengali mebibyte (10242) |
gb |
pengali gigibyte (10243) |
tb |
pengali teribyte (10244) |
pb |
pengali petibyte (10245) |
Jenis literal bilangan bulat ditentukan oleh nilainya, akhiran jenis, dan akhiran pengali numerik.
Untuk bilangan bulat literal tanpa akhiran jenis:
- Jika nilai dapat diwakili oleh jenis
[int], itu adalah jenisnya. - Jika tidak, jika nilai dapat diwakili oleh jenis
[long], itu adalah jenisnya. - Jika tidak, jika nilai dapat diwakili oleh jenis
[decimal], itu adalah jenisnya. - Jika tidak, itu diwakili oleh jenis
[double].
Untuk bilangan bulat literal dengan akhiran jenis:
- Jika akhiran jenis adalah
udan nilai dapat diwakili oleh jenis[int]maka jenisnya adalah[int]. - Jika akhiran jenis adalah
udan nilai dapat diwakili oleh jenis[long]maka jenisnya adalah[long]. - Jika nilainya dapat diwakili oleh jenis yang ditentukan maka itu adalah jenisnya.
- Jika tidak, harfiah itu salah bentuk.
Literal nyata
Literal nyata hanya dapat ditulis dalam notasi desimal. Notasi ini dapat mencakup nilai pecahan setelah titik desimal dan notasi ilmiah menggunakan bagian eksponensial.
Bagian eksponensial mencakup 'e' diikuti dengan tanda opsional (+/-) dan angka yang mewakili eksponen. Misalnya, nilai 1e2 harfiah sama dengan nilai numerik 100.
Literal nyata dapat memiliki akhiran jenis dan akhiran pengali.
| Akhiran | Makna |
|---|---|
d |
tipe data desimal |
kb |
pengali kibibyte (10241) |
mb |
pengali mebibyte (10242) |
gb |
pengali gigibyte (10243) |
tb |
pengali teribyte (10244) |
pb |
pengali petibyte (10245) |
Ada dua jenis harfiah nyata: ganda dan desimal. Ini ditunjukkan oleh ketidakhadiran atau kehadiran, masing-masing, dari akhiran jenis desimal. PowerShell tidak mendukung representasi harfiah dari sebuah [float] nilai. Literal nyata ganda memiliki jenis [double]. Literal nyata desimal memiliki jenis [decimal].
Nol berikutnya di bagian pecahan dari literal nyata desimal sangat signifikan.
Jika nilai digit bagian eksponen dalam [double] literal nyata kurang dari minimum yang [double] didukung, nilai harfiah nyata tersebut adalah 0. Jika nilai digit bagian eksponen dalam [decimal] literal nyata kurang dari minimum yang didukung, literal tersebut salah bentuk. Jika nilai digit bagian eksponen dalam [double] literal atau [decimal] nyata lebih besar dari maksimum yang didukung, literal tersebut salah bentuk.
Catatan
Sintaks memungkinkan literal nyata ganda untuk memiliki akhiran jenis panjang.
PowerShell memperlakukan kasus ini sebagai bilangan bulat literal yang nilainya diwakili oleh jenis [long]. Fitur ini telah dipertahankan untuk kompatibilitas mundur dengan versi PowerShell yang lebih lama. Namun, programmer tidak dianjurkan untuk menggunakan literal bilangan bulat dari bentuk ini karena mereka dapat dengan mudah mengaburkan nilai aktual literal. Misalnya, 1.2L memiliki nilai 1, 1.2345e1L memiliki nilai 12, dan 1.2345e-5L memiliki nilai 0, tidak satu pun yang langsung jelas.
Pengali numerik
Untuk kenyamanan, bilangan bulat dan literal nyata dapat berisi pengali numerik, yang menunjukkan salah satu set kekuatan yang umum digunakan 2. Pengali numerik dapat ditulis dalam kombinasi huruf besar atau kecil apa pun.
Akhiran pengali dapat digunakan dalam kombinasi dengan uakhiran jenis , , uldan l .
Contoh pengali
PS> 1kb
1024
PS> 1.30Dmb
1363148.80
PS> 0x10Gb
17179869184
PS> 1.4e23tb
1.5393162788864E+35
PS> 0x12Lpb
20266198323167232
Akselerator jenis numerik
PowerShell mendukung jenis akselerator berikut:
| Accelerator | Catatan | Deskripsi |
|---|---|---|
[byte] |
Byte (tidak ditandatangani) | |
[sbyte] |
Byte (ditandatangani) | |
[int16] |
bilangan bulat 16-bit | |
[uint16] |
Bilangan bulat 16-bit (tidak ditandatangani) | |
[int32] |
bilangan bulat 32-bit | |
[int] |
alias untuk [int32] |
bilangan bulat 32-bit |
[uint32] |
Bilangan bulat 32-bit (tidak ditandatangani) | |
[int64] |
bilangan bulat 64-bit | |
[long] |
alias untuk [int64] |
bilangan bulat 64-bit |
[uint64] |
Bilangan bulat 64-bit (tidak ditandatangani) | |
[bigint] |
Lihat BigInteger Struct | |
[single] |
Titik mengambang presisi tunggal | |
[float] |
alias untuk [single] |
Titik mengambang presisi tunggal |
[double] |
Titik mengambang presisi ganda | |
[decimal] |
Titik mengambang 128-bit |
Bekerja dengan jenis numerik lainnya
Untuk bekerja dengan jenis numerik lainnya, Anda harus menggunakan akselerator jenis, yang bukan tanpa beberapa masalah. Misalnya, nilai bilangan bulat tinggi selalu diurai sebagai dua kali lipat sebelum ditransmisikan ke jenis lain.
PS> [bigint]111111111111111111111111111111111111111111111111111111
111111111111111100905595216014112456735339620444667904
Nilai diurai sebagai ganda terlebih dahulu, kehilangan presisi dalam rentang yang lebih tinggi. Untuk menghindari masalah ini, masukkan nilai sebagai string lalu konversikan:
PS> [bigint]'111111111111111111111111111111111111111111111111111111'
111111111111111111111111111111111111111111111111111111
Examples
Tabel berikut berisi beberapa contoh literal numerik dan mencantumkan jenis dan nilainya:
| Number | Tipe | Nilai |
|---|---|---|
| 100 | Int32 | 100 |
| 100D | Decimal | 100 |
| 100l | Int64 | 100 |
| 1e2 | Laju | 100 |
| 1.e2 | Laju | 100 |
| 0x1e2 | Int32 | 482 |
| 0x1e2L | Int64 | 482 |
| 0x1e2D | Int32 | 7725 |
| 482D | Decimal | 482 |
| 482gb | Int64 | 517543559168 |
| 0x1e2lgb | Int64 | 517543559168 |
Konversi jenis numerik
Ketika string dikonversi ke angka, indikator format heksadesimal tambahan didukung. Format tambahan tersebut tidak dikenali sebagai harfiah.
[int] '0xF' -eq 0xF
[int] '&hF' -eq 0xF
[int] '#F' -eq 0xF
Perintah yang terlihat seperti literal numerik
Perintah apa pun yang terlihat seperti harfiah numerik harus dijalankan menggunakan operator panggilan (&), jika tidak, perintah tersebut ditafsirkan sebagai sejumlah jenis terkait.
Mengakses properti dan metode objek numerik
Untuk mengakses anggota harfiah numerik, ada kasus ketika Anda perlu mengapit literal dalam tanda kurung.
- Harfiah tidak memiliki titik desimal
- Literal tidak memiliki digit apa pun setelah titik desimal
- Literal tidak memiliki akhiran
Misalnya, contoh berikut gagal:
PS> 2.GetType().Name
At line:1 char:11
+ 2.GetType().Name
+ ~
An expression was expected after '('.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedExpression
Contoh berikut berfungsi:
PS> 2L.GetType().Name
Int64
PS> 1.234.GetType().Name
Double
PS> (2).GetType().Name
Int32
Dua contoh pertama berfungsi tanpa menyertakan nilai harfiah dalam tanda kurung karena pengurai PowerShell dapat menentukan di mana harfiah numerik berakhir dan metode GetType dimulai.