謝辞: この Esp については、STACKOVERFLOW の多くの記事のおかげです。100 万形式ではなく Lakh 形式を使用するための Java の数値形式
新しいFlex AIRアプリケーションでは、1つの優れたイノベーションRIGHT ALIGN + インドのカンマ区切りを行いました
これは、カスタム アイテム レンダリングによって行われます。多くの検索とコード作業が必要です Java から適応しましたが、Java、C#、および AS3 は非常に似ているため、簡単に移植できます
インド以外では、何十億円も好きな人はいません。100 万億ドルに満足している人々もいますが、私たちインド人は数十億ドルを考え、数千万ルピーを夢見ています。そして百万(10万ルピー)のトラ・コンフシンを見つける
途中で、非常に一般的なニーズである RIGHT ALIGN も行いました
Flex マークアップ
<s:GridColumn id="dmbtr" headerText="Amt (INR)" dataField="dmbtr" >
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer>
<s:Label id="MyText" top="9" left="7" alpha="1"
text="{leftPad(data.dmbtr,10)}"
fontFamily="Lucida Console" textAlign="right"/>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
AS3 機能
public function leftPad(inp:Number,size:int):String {
var lstr:String=Math.round(inp).toString();
// 数千ルピーのインディアン スタイル
var pat3:RegExp = /(\d+)(\d{3})$/;
lstr = lstr.replace(pat3, "$1,$2");
var pat2:RegExp = /(\d+)(\d{2},.+)/;
var pat1:RegExp = /\d{3,},.+/;
while(lstr.match(pat1))
lstr = lstr.replace(pat2, "$1,$2");
// 右揃え部分
var strLen:int = lstr.length;
var padLen:int = size - strLen;
if (padLen <= 0)
return lstr;
var myspaces:String=" "; // 20 OK
return myspaces.substring(0,padLen)+lstr;
}
トリックは、左パッドで固定幅フォントを使用することです
私の要件は最も近いルピーでした
小数が必要な場合 (INR の場合は paise)、Number の toFixed メソッドを使用し、pat3 を
var pat3:RegExp = /(\d+)(\d{3}.*)$/;として変更します。
右揃え部分はインドのコンマの後