java jsf保留两位小数问题

java保留两位小数问题:

方式一:

四舍五入  
double   f   =   111231.5585;  
BigDecimal   b   =   new   BigDecimal(f);  
double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();  
保留两位小数
  
---------------------------------------------------------------  

方式二:

java.text.DecimalFormat   df   =new   java.text.DecimalFormat("#.00");  
df.format(你要格式化的数字);

例:new java.text.DecimalFormat("#.00").format(3.1415926)

#.00 表示两位小数 #.0000四位小数 以此类推...

方式三:

double d = 3.1415926;

String result = String .format("%.2f");

%.2f %. 表示 小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型

保留两位小数且不用科学计数法


JSF绑定bean的属性为Double时,如果输入的数字过长会自动转为科学计数法,这对界面显示是个障碍,通过一下方法可以进行转换

1、写一个转换器,在getAsString方法中对科学计数法的Double进行转换并返回

public String getAsString(FacesContext context, UIComponent component,
   Object value)
 {

    Double dValue = (Double)value;
    if (null == dValue )
    {
     return "没有取得value!";
    }
    DecimalFormat df = new DecimalFormat("#0.00");  //保留两位小数且不用科学计数法 

    return  df.format(dValue);

}

2、在faces-config.xml中配置此转换器

 <converter>
   <description>NUMBER convert</description>
    <converter-id>numberConvert</converter-id>
    <converter-class>com.abc.jsf.convert.NumberConvert</converter-class>
  </converter>

3、在页面上使用转换器

 <h:inputText id="je" value="#{xxBean.je}" required="true">
    <f:validateDoubleRange minimum="0.01" maximum="9999999999999.99"/>
    <f:converter converterId="numberConvert"/>                           
  </h:inputText>

 

这样处理后,页面在渲染阶段会将科学计数法的Double的je转换为String

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值