次のようにコードをコピーします。
/**
※人民元を大文字に変換
*
* @param値
* @return 文字列
*/
public static String HangeToBig(double value)
{
char[] hunit = { '十', '百', '千' } // セグメント内の位置表現
char[] vunit = { '10,000', '100 million' }; // セグメント名の表現
char[] digit = {'zero', 'one', 'two', 'three', 'four', 'five', 'Lu', 'Qi', 'eight', 'Nine' };急行
long midVal = (long) (value * 100); // 整数に変換します。
String valStr = String.valueOf(midVal); //文字列に変換します
String head = valStr.substring(0, valStr.length() - 2); // 整数部分を取得します。
String Rail = valStr.substring(valStr.length() - 2); // 小数部分を取得します。
String prefix = "" // 整数部分の変換結果
String suffix = "" // 小数部の変換結果
// 小数点以下の数値を処理する
if (rail.equals("00"))
{ // 小数部が0の場合
接尾辞 = "全体";
}
それ以外
{
suffix = digit[rail.charAt(0) - '0'] + "angle" + digit[rail.charAt(1) - '0'] + "month" // それ以外の場合は、角度分を変換します。
}
// 小数点以下の数値を処理する
char[] chDig = head.toCharArray(); // 整数部分を文字配列に変換します。
char zero = '0' // フラグ '0' は 0 が発生したことを示します。
byte zeroSerNum = 0; // 0 の連続出現数
for (int i = 0; i < chDig.length; i++)
{ // 各数値をループします
int idx = (chDig.length - i - 1) % 4; // セグメント内の位置を取得します。
int vidx = (chDig.length - i - 1) // セグメントの位置を取得します。
if (chDig[i] == '0')
{ // 現在の文字が 0 の場合
zeroSerNum++; // 連続して 0 をインクリメントします。
if (ゼロ == '0')
{ // フラグ
ゼロ = 数字[0];
}
else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
{
プレフィックス += vunit[vidx - 1];
ゼロ = '0';
}
続く;
}
zeroSerNum = 0; // 0回連続クリア
if (ゼロ != '0')
{ // フラグが 0 でない場合は、たとえば、数万、十億などを追加します。
接頭辞 += ゼロ;
ゼロ = '0';
}
prefix += digit[chDig[i] - '0'] // デジタル表現を変換します。
if (idx > 0)
プレフィックス += hunit[idx - 1];
if (idx == 0 && vidx > 0)
{
prefix += vunit[vidx - 1]; // セグメント名はセグメントの末尾に追加する必要があります (10,000、10 億など)
}
}
if (prefix.length() > 0)
prefix += 'circle' // 整数部分が存在する場合、単語「circle」が存在します。
return プレフィックス + サフィックス // 正しい表現を返します。
}