数値形式の計算結果を漢字形式に変換したいと考えたことはありますか?読みにくいですよね? たとえ千の区切りがあっても、この記号は英語にとっては便利ですが、私たちの読み方には適していないので、それをスムーズに言うのは簡単ではありません。 次に、このタスクを完了するための関数を自分で書きます。次のコードを変更します。Web ページに追加すると、num2chi() 関数を呼び出すことで上記の機能を実現できます。ぜひ試してみてください。このコードを誰でも理解できるように、以下に詳細なコメントを追加しました。退役軍人の皆さん、不満を言わないでください、^_^
//----------機能開始------。 -------- ---------------
//-------------------------- -------- ----------
//関数名: num2chi()
//叁 数値: 数値
//戻り値: 文字列
//関数: を変換読みにくい長い数字の文字列を漢字で読みやすくしました
//著者: chen.anson
//サイト: HTTP://dreamer.oso.com.cn
//--------- ---- ----------------------------
function num2chi(result) {
var chiresult = "";文字形式です
result = result.toString(); //結果を文字形式に変換します
result = result.toLowerCase(); //resultlen を result の長さとして定義します
tempresult = result; ");
tempresult = tempresult.replace("2","二");
tempresult = tempresult.replace("3","三");
tempresult = tempresult.replace("4","四") ;
tempresult = tempresult.replace("5","五");
tempresult = tempresult.replace("7","七"); tempresult = tempresult.replace("8","8");
tempresult = tempresult.replace("0","zero"); tempresult.replace(".","point");
tempresult = tempresult.replace("e+","power")
}
while(tempresult.indexOf("zero zero")!=-1) / /文字列 tempresult に「ゼロゼロ」が現れるのを避けますが、文字列の長さは変更できません
{
Tempresult = tempresult.replace("zero zero", "bit zero")
}
resultlen = tempresult.length; "e+"->"power" によって長さが変わるため、tempresult の長さを再度確認します
for (i=1,j=1,k=1;i<=resultlen;i++) //変換開始, i 桁数のパラメータを確認、j は「百と千」の確認パラメータ、k は「兆」の確認パラメータ
{
// 800、200,000 など、仮数部がゼロにならないようにします
if (tempresult. charAt(resultlen-1)=="zero"&&i==1)
chiresult = "bit";
else if (tempresult.charAt(resultlen-i)=="zero"&&j==1)
chiresult = "bit" " + chiresult;
//--------------------------------
//組み合わせを避ける「power」を実際の桁数として「 Click 」とし、単位確認変数が再カウントされます
else if (tempresult.charAt(resultlen-i)=="power")
{
j=1;k= 1;chiresult = tempresult.charAt(resultlen- i) + chiresult;Continue;
}
else if (tempresult.charAt(resultlen-i)=="point")
{
j=1;k=1;chiresult = tempresult.charAt(resultlen-i) + chiresult ;続行
}
resultlen-i) +
//数値単位を追加
if (tempresult.charAt) (resultlen-i-1)!="bit"&&tempresult.charAt(resultlen-i-1)!="zero"&&tempresult.charAt (resultlen-i-1) =8&&i
j++; k++;
}
while(chiresult.indexOf("bit")!=-1) //chiresult に文字列「bit」が含まれないようにします
{
chiresult = chiresult.replace("bit","");
if (chiresult.substr(0,2)=="一十") //「一"Chiresult" などの出現を避ける
chiresult = chiresult.substring(1,chiresult.length);
/ /べき乗と小数点以下の数値は単位を付けずにそのまま読み取ってください
if (chiresult.search("power")> =0&&chiresult.search("point")>gt;=0)
{
rebegin = chiresult. substring(0,chiresult.indexOf("point"));
relast = chiresult.substring(chiresult.indexOf("power") ,chiresult.length);
remid = chiresult.substring("point") ,chiresult.indexOf("power"));
for (i=1;i { = Remid = Remid.replace ("ピックアップ", ""); replace ("百", "");
Remid = Remid.replace ("千", "");
Remid = Remid.replace ("十億") , "");
}
chiresult = Rebegin + Remid + Relast; <0&&chiresult.search("point")>=0)
{
rebegin = chiresult.indexOf("point") );
relast = chiresult.substring(chiresult.indexOf("point" ),chiresult.length);
for (i=1;i<=relast.length;i++)
{
relast = relast.replace("十","");
relast = relast.replace("百" ,"");
relast = relast.replace("千","");
relast = relast.replace("百万","") ;
relast = relast.replace("billion","");
}
chiresult = rebegin + relast;
if (chiresult.search("power")>=0) //「power」を置き換えます直接読み取れるように「10 倍」を付けます
{ chiresult = chiresult.replace("power","multiplied by chi");
chiresult = chiresult + "power"; }
//----------------------機能終了---------------------- ---------
次の 2 つのステートメントをスクリプト ブロックに入力し、実行して結果が正しいかどうかを確認してください。http://dreamer.oso.com にある私のホームページにアクセスすることもできます。 cn レジャープラザには、このコードを使用して実装された宝くじページがあります。
document.write(hi+"
"+num2chi(hi));
http://www.bkjia.com/PHPjc/315712.html