鸣谢:我欠了很多在StackOverflow上很多帖子这个 ESP。Number formatting in java to use Lakh format instead of million format
在新的Flex AIR应用程序1个良好的创新我做右对齐 +印度逗号分隔
这是通过自定义项目渲染完成的;需要大量的搜索和代码工作 改编自Java但Java,C#& AS3如此相似,它是一个Cakewalk移植
印度以外没有人喜欢卢克斯和克卢斯;其他人与亿万幸福 但我们印度人认为百万富翁和梦想百万富翁;并找到万美元(10十万)疫confushingh
途中我还没有右对齐一个非常普遍的需求
的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();
// LAKHS CRORES Indian Style
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;
}
诀窍是左垫和使用固定宽度字体
我的要求是最近卢比
如果您需要小数点(paise for INR)使用数字 的固定方法并将pat3更改为
var pat3:RegExp = /(\d+)(\d{3}.*)$/;
右对齐的部分是印度逗号
谢谢你,现在弄明白了很好的工作。 – 2012-07-08 21:16:12