-
-
Save faisalman/845309 to your computer and use it in GitHub Desktop.
/** | |
* JavaScript Code Snippet | |
* Convert Number to Rupiah & vice versa | |
* https://gist.github.com/845309 | |
* | |
* Copyright 2011-2012, Faisalman | |
* Licensed under The MIT License | |
* http://www.opensource.org/licenses/mit-license | |
* | |
*/ | |
function convertToRupiah(angka) | |
{ | |
var rupiah = ''; | |
var angkarev = angka.toString().split('').reverse().join(''); | |
for(var i = 0; i < angkarev.length; i++) if(i%3 == 0) rupiah += angkarev.substr(i,3)+'.'; | |
return 'Rp. '+rupiah.split('',rupiah.length-1).reverse().join(''); | |
} | |
/** | |
* Usage example: | |
* alert(convertToRupiah(10000000)); -> "Rp. 10.000.000" | |
*/ | |
function convertToAngka(rupiah) | |
{ | |
return parseInt(rupiah.replace(/,.*|[^0-9]/g, ''), 10); | |
} | |
/** | |
* Usage example: | |
* alert(convertToAngka("Rp 10.000.123")); -> 10000123 | |
*/ |
<?php | |
/** | |
* PHP Code Snippet | |
* Convert Number to Rupiah & vice versa | |
* https://gist.github.com/845309 | |
* | |
* Copyright 2011-2012, Faisalman | |
* Licensed under The MIT License | |
* http://www.opensource.org/licenses/mit-license | |
*/ | |
/** | |
* | |
* @param integer $angka number | |
* @return string | |
* | |
* Usage example: | |
* echo convert_to_rupiah(10000000); -> "Rp. 10.000.000" | |
*/ | |
function convert_to_rupiah($angka) | |
{ | |
return 'Rp. '.strrev(implode('.',str_split(strrev(strval($angka)),3))); | |
} | |
/** | |
* | |
* @param string $rupiah | |
* @return integer | |
* | |
* Usage example: | |
* echo convert_to_number("Rp. 10.000.123,00"); -> 10000123 | |
*/ | |
function convert_to_number($rupiah) | |
{ | |
return intval(preg_replace(/,.*|[^0-9]/, '', $rupiah)); | |
} | |
?> |
package | |
{ | |
/** | |
* ActionScript 3.0 Code Snippet | |
* Convert Number to Rupiah & vice versa | |
* https://gist.github.com/845309 | |
* | |
* Copyright 2011-2012, Faisalman | |
* Licensed under The MIT License | |
* http://www.opensource.org/licenses/mit-license | |
*/ | |
public class Rupiah | |
{ | |
public static function convertToRupiah(angka:Number):String | |
{ | |
var angkaRev:String = new String(); | |
var angkaRev2:String = new String(); | |
var i:Number = new Number(); | |
angkaRev = angka.toString().split('').reverse().join(''); | |
for(i = 0; i < angkaRev.length; i++) if(i%3 == 0) angkaRev2 += angkaRev.substr(i,3)+'.'; | |
return 'Rp. '+angkaRev2.split('',angkaRev2.length-1).reverse().join(''); | |
} | |
/** | |
* // Usage example: // | |
* var rp:Rupiah = new Rupiah(); | |
* trace(rp.convertToRupiah(10000000)); -> "Rp. 10.000.000" | |
*/ | |
public static function convertToAngka(rupiah:String):Number | |
{ | |
return parseInt(rupiah.replace(/,.*|[^0-9]/g,''), 10); | |
} | |
/** | |
* // Usage example: // | |
* var rp:Rupiah = new Rupiah(); | |
* trace(rp.convertToAngka("Rp 10.000.123,00")); -> 10000123 | |
*/ | |
} | |
} |
/** | |
* C#.NET Code Snippet | |
* Convert Number to Rupiah & vice versa | |
* https://gist.github.com/845309 | |
* | |
* Copyright 2012, Faisalman | |
* Licensed under The MIT License | |
* http://www.opensource.org/licenses/mit-license | |
*/ | |
using System; | |
using System.Globalization; | |
using System.Text.RegularExpressions; | |
public static class Rupiah | |
{ | |
public static string ToRupiah(this int angka) | |
{ | |
return String.Format(CultureInfo.CreateSpecificCulture("id-id"), "Rp. {0:N}", angka); | |
} | |
/** | |
* // Usage example: // | |
* int angka = 10000000; | |
* System.Console.WriteLine(angka.ToRupiah()); // -> Rp. 10.000.000 | |
*/ | |
public static int ToAngka(this string rupiah) | |
{ | |
return int.Parse(Regex.Replace(rupiah, @",.*|\D", "")); | |
} | |
/** | |
* // Usage example: // | |
* string rupiah = "Rp 10.000.123,00"; | |
* System.Console.WriteLine(rupiah.ToAngka()); // -> 10000123 | |
*/ | |
} |
bro mau nanya nih,, bagaimana menerapkan kode ini jika value untuk text berasal dari php $_POST ?
mohon bantuannya, cz gk terlalu ngerti soal js :(
assalamualaikum man , kalo decimal nya kenapa ,00 terus ya?
@lhanink berarti situ pake yg versi php aja
maaf mau nanya masih newbie banget
itu yang php penerapan ke textbox nya gimana ya?
makasih buat yang php
tengkyu mas e, kamu menyelamatkan hidupku
Thanks om
semoga berkah ilmunya :)
Thanks broder
kenapa format js kalau melebihi satu juta menjadi NaN?
Kau bisa ganti biar ikut PUEBI, @faisalman?
thanks vroh
Penulisan yang benar Rp123.456,67
ga pake spasi titik.
Buat ngilangin desimal 2 angka dibelakang ditambah 0 setelah N
return String.Format(CultureInfo.CreateSpecificCulture("id-id"), "Rp. {0:N0}", angka);
lebih simple dibanding bawaan fungsi php..thx
selama buat project selalu pakai cara ini. terima kasih banyak gan. sangat membantu sekali
Penulisan rupiah yang benar adalah Rp1.000.000
atau Rp1.000.000.00
atau Rp1.000.000,-
makasih bang
Bagaimana cara mengembalikan 10.000 menjadi 10000
@miftakhulrobi cara sederhanya bisa seperti ini:
- angka/nilainya dikonvesi kedalam string
- split jadi array dengan separator . (titik)
- gabungkan array dan ditampung kedalam variable
- konversi variable tersebut kedalam angka
mantap vroh
kl sy tambahkan symbol minus, contoh hasil nya '-.888' itu bagaimana ya kak?
@hstaprl maksut kamu -0.888 gitu? kok punyamu tanpa 0? why?
mantap boby
Terima kasih fungsinya, Faisalman! Saya titip editan di sini ya:
function convertToRupiah(angka) {
var rupiah = '';
var angkarev = angka.toString().split('').reverse().join('');
for (var i = 0; i < angkarev.length; i++) if (i % 3 == 0) rupiah += angkarev.substr(i, 3) + '.';
return 'Rp' + rupiah.split('', rupiah.length - 1).reverse().join('');
}
tambahan nih untuk java
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class RupiahUtils {
public static void main(String[] args) {
double harga = 250000000;
System.out.printf("Harga Rupiah: %s %n", convertToRupiah(harga));
System.out.printf("%.2f", harga);
}
public static String convertToRupiah(Double angka) {
DecimalFormat kursIndonesia = (DecimalFormat) DecimalFormat.getCurrencyInstance();
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
formatRp.setCurrencySymbol("Rp. ");
formatRp.setMonetaryDecimalSeparator(',');
formatRp.setGroupingSeparator('.');
kursIndonesia.setDecimalFormatSymbols(formatRp);
return kursIndonesia.format(angka);
}
public static String convertToRupiahWithoutTrailingZeros(Double angka) {
final String regex = ",00$";
final String subst = ",-";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(convertToRupiah(angka));
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
return result;
}
}
js substr
deprecated, diganti dengan ini
function convertToRupiah(angka) {
let number_string = new String(angka).replace(/[^,\d]/g, '').toString(),
split = number_string.split(','),
sisa = split[0].length % 3,
rupiah = split[0].substring(0, sisa),
ribuan = split[0].substring(sisa).match(/\d{3}/gi);
// tambahkan koma jika yang di input sudah menjadi angka ribuan
if (ribuan) {
separator = sisa ? ',' : '';
rupiah += separator + ribuan.join(',');
}
rupiah = split[1] != undefined ? rupiah + ',' + split[1] : rupiah;
return (rupiah ? 'Rp. ' + rupiah : '') + ',-';
}
thanks buat yg JS. 🍰
sama saran di-line: https://gist.github.com/faisalman/845309#file-convert-rupiah-js-L17
dijadikan:
handle kalo string kosong, akan otomatis Rp. 0,-