在Salesforce中将 Decimal 数据转换成美元格式

闲言少叙,直接上代码(Apex Class 中的方法):

    private string ConvertToMoneyFormat(decimal price){
        if (price == null || Math.abs(price) < 0.005) return '$0.00';
        String s = (price.setScale(2) + (price >= 0 ? 0.001 : -0.001)).format();
        return '$' + s.substring(0, s.length() - 1);
    }

基本结果表现为:

11 ----> $11.00

1111 --->  $1,111.00

1111.1 --->  $1,111.10

1111.111 --->  $1,111.11

 

若是在页面的控件中以美元显示,可以用如下方法:

<apex:outputText value="{0, number, currency}">
    <apex:param value="{!EricSunCreditLimit}"/>
</apex:outputText>

 

或者用对数值进行一个更复杂的操作:

<apex:outputText value="{0, number, ##}%" >
    <apex:param value="{!IF(EricSunCreditLimit>99 && EricSunCreditLimit<100 ,99,EricSunCreditLimit)}"/>
</apex:outputText>

 

再来一个:

<apex:outputText value="{!'{0, number,###,###,##0.0}K'}">
    <apex:param value="{!ROUND(EricSunCreditLimit/1000,1)}"/>
</apex:outputText>

 

更多内容请看如下链接:

http://salesforce.stackexchange.com/questions/318/what-is-a-concise-function-that-formats-a-string-decimal-into-a-currency-forma 

 

posted @ 2014-05-22 14:25  Eric Sun  阅读(633)  评论(0编辑  收藏  举报