Copy kode kodenya sebagai berikut:
/**
* Ubah RMB menjadi huruf besar
*
* @nilai param
* @pengembalian String
*/
String statis publik hangeToBig (nilai ganda)
{
char[] hunit = { '十', '百', '千' }; // Representasi posisi dalam segmen
char[] vunit = { '10,000', '100 juta' }; // Representasi nama segmen
char[] digit = {'nol', 'satu', 'dua', 'tiga', 'empat', 'lima', 'Lu', 'Qi', 'delapan', 'Sembilan' }; cepat
long midVal = (panjang) (nilai * 100); // Konversikan ke bilangan bulat
String valStr = String.valueOf(midVal); //Konversikan ke string
String head = valStr.substring(0, valStr.length() - 2); // Ambil bagian bilangan bulat
String rail = valStr.substring(valStr.length() - 2); // Ambil bagian desimal
String prefix = ""; // Hasil konversi bagian bilangan bulat
Akhiran string = ""; // Hasil konversi bagian desimal
// Memproses angka setelah koma desimal
if (rail.sama dengan("00"))
{ // Jika bagian desimalnya 0
akhiran = "keseluruhan";
}
kalau tidak
{
akhiran = digit[rail.charAt(0) - '0'] + "angle" + digit[rail.charAt(1) - '0'] + "menit"; // Jika tidak, ubah menit sudut
}
// Memproses angka sebelum koma desimal
char[] chDig = head.toCharArray(); // Ubah bagian integer menjadi array karakter
char zero = '0'; // Tandai '0' menunjukkan bahwa 0 telah terjadi
byte zeroSerNum = 0; // Jumlah kemunculan berturut-turut 0
untuk (int i = 0; i < chDig.length; i++)
{ // Ulangi setiap nomor
int idx = (chDig.length - i - 1) % 4; // Dapatkan posisi dalam segmen tersebut
int vidx = (chDig.length - i - 1) / 4; // Dapatkan posisi segmen
jika (chDig[i] == '0')
{// Jika karakter saat ini adalah 0
zeroSerNum++; // Menambah 0 kali berturut-turut
jika (nol == '0')
{// bendera
nol = angka[0];
}
lain jika (idx == 0 && vidx > 0 && zeroSerNum < 4)
{
awalan += vunit[vidx - 1];
nol = '0';
}
melanjutkan;
}
zeroSerNum = 0; // Hapus 0 kali berturut-turut
jika (nol != '0')
{ // Jika tandanya bukan 0, tambahkan, misalnya, puluhan ribu, miliaran, dan seterusnya.
awalan += nol;
nol = '0';
}
prefix += digit[chDig[i] - '0']; // Konversi representasi digital
jika (idx > 0)
awalan += hunit[idx - 1];
jika (idx == 0 && vidx > 0)
{
awalan += vunit[vidx - 1]; // Nama segmen harus ditambahkan di akhir segmen, misalnya sepuluh ribu, miliar
}
}
jika (awalan.panjang() > 0)
awalan += 'lingkaran'; // Jika bagian bilangan bulat ada, akan ada kata lingkaran
return prefix + suffix; // Mengembalikan representasi yang benar
}