日期:2014-05-18  浏览次数:20712 次

double类型的数据如何通过转换变为需要的字符串,急?
各位大哥,小弟碰到一个问题是:
   
  数据库中的money类型的数据,通过hibernate,得到double型数据(如1.23456789E8的数据),但我要以字符串展示出来(即不能有"E"),我使用了NumberFormat,但不起作用, 请各位大哥帮忙?谢谢

------解决方案--------------------
Java code

double d = 1.23456789E8d;
DecimalFormat   df   =   new   DecimalFormat(   "#.#"   );   
System.out.println(String.valueOf(df.format(d)));

------解决方案--------------------
这个问题问得很及时,学习
留个名就可以
------解决方案--------------------
请参考! Money比较敏感,建议楼主使用BigDecial 代替Double
Java code
  private static NumberFormat nf = NumberFormat.getNumberInstance();

  /**
   * 输出格式化的数字
   * @param bd 数字
   * @param fraction 小数点位数
   * @param group 是否显示千分位的小数点
   * @return
   */
  public static String toString(double bd, int fraction, boolean group) {

    nf.setGroupingUsed(group);
    nf.setMaximumFractionDigits(fraction); 
    nf.setMinimumFractionDigits(fraction);
    return nf.format(bd);
  }
  public static String toString(BigDecimal bd, int fraction, boolean group) {
    if (bd == null) {
      return "";
    }
    nf.setGroupingUsed(group);
    nf.setMaximumFractionDigits(fraction);
    nf.setMinimumFractionDigits(fraction);
    return nf.format(bd);
  }

------解决方案--------------------
我开始还以为是个很简单的问题那,同1楼想法一样,不过5楼方法挺有启发的