Lewati ke konten

Rupiah

Angka
1500000.5
Format
Rp1.500.000,50
Terbilang
satu juta lima ratus ribu rupiah lima puluh sen

Jalan di browser kamu.

Go TypeScript Hasil
rupiah.Format(a, opts) rupiah.format(n, opts?) Rp1.500.000,50
rupiah.Parse(s) rupiah.parse(s) Nominal (Go: Amount dalam sen, TypeScript: number dalam rupiah)
rupiah.Valid(s) rupiah.isValid(s) Apakah s bisa di-parse
rupiah.Terbilang(a) rupiah.terbilang(n) satu juta lima ratus ribu rupiah lima puluh sen
  • Go memakai rupiah.Amount, int64 dalam sen, sehingga aritmetika selalu tepat: 150_000 * rupiah.Rupiah + 50 * rupiah.Sen.
  • TypeScript memakai number dalam rupiah. Nominal dengan sen dibatasi di bawah 10 triliun (MAX_SEN_AMOUNT) supaya tetap tepat. Nominal bulat bisa sampai 999 triliun (MAX_AMOUNT).
Go Options TypeScript Efek
Decimals decimals Selalu tampilkan sen: Rp2.000.000,00
OmitSymbol symbol: false Tanpa awalan Rp

Tanpa Decimals, sen hanya ditampilkan jika tidak nol. Nominal negatif ditulis -Rp1.000.

Parse paham cara orang Indonesia menulis nominal: awalan Rp, Rp., atau IDR (opsional), titik sebagai pemisah ribuan, koma sebelum sen, dan akhiran ,-. Rp 25.000,-, IDR 1.500.000,50, dan 25000 semuanya bisa di-parse. Input dibatasi 64 karakter.

length, charset, format (pemisah salah tempat, lebih dari dua digit sen), range (melebihi nominal yang didukung).

package main
import (
"fmt"
"github.com/haikalmumtaz233/nusaindex/rupiah"
)
func main() {
price := 1_500_000*rupiah.Rupiah + 50*rupiah.Sen
text, err := rupiah.Format(price, rupiah.Options{})
if err == nil {
fmt.Println(text)
}
plain, err := rupiah.Format(2_000_000*rupiah.Rupiah, rupiah.Options{Decimals: true, OmitSymbol: true})
if err == nil {
fmt.Println(plain)
}
fmt.Println(rupiah.Valid("Rp 25.000,-"))
amount, err := rupiah.Parse("Rp 25.000,-")
if err == nil {
fmt.Println(int64(amount / rupiah.Rupiah))
}
words, err := rupiah.Terbilang(price)
if err == nil {
fmt.Println(words)
}
}
Keluaran
Rp1.500.000,50
2.000.000,00
true
25000
satu juta lima ratus ribu rupiah lima puluh sen