分享

java float 保留小数点的问题

 Ebric 2012-05-22
(一): 

   float   a   =   123.2334f;  
      float   b   =   (float)(Math.round(a*100))/100;(这里的100就是2位小数点,如果要其它位,如4位,这里两个100改成10000) 

(二): 
  import   java.text.DecimalFormat;       
  String   a   =   new   DecimalFormat("###,###,###.##").format(100.12345   ); 

(三): 

float   ft   =   134.3435f;  
  int   scale   =   2;//设置位数  
  int   roundingMode   =   4;//表示四舍五入,可以选择其他舍值方式,例如去尾,等等.  
  BigDecimal   bd   =   new   BigDecimal((double)ft);  
  bd   =   bd.setScale(scale,roundingMode);  
  ft   =   bd.floatValue();  


这几种在打印显示的时候都没问题,但是在数据库中存在的真实值(float字段,上面几种方式在格式化后结果正确,我再转成float后结果就错了)并没有截取成两位小数,例如:0.333333343267441 
在我取出数据后转成double后就变成了真实值,而不是0.33

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多