浮点型怎么设置小数点后数的位数,如:double a=5.6666;如何让a输出保留两位小数即a=5.67;

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-18 22:49:52的汇总数据:
    发帖数:2
    结贴数:0
    结贴率: 0.00%
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    请参见:java.text.DecimalFormat
    以下是方法:
    public  void  setMinimumFractionDigits(int newValue)//   设置某个数的小数部分中所允许的最小数字位数。
    public  void  setMaximumFractionDigits(int newValue)//   设置某个数的小数部分中所允许的最大数字位数。
    public StringBuffer format(double number,
                               StringBuffer result,
                               FieldPosition fieldPosition)
        格式化一个 double 值,以生成一个字符串。    指定者:
            类 NumberFormat 中的 format    参数:
            number - 要格式化的 double 值
            result - 将文本追加到的地方
            fieldPosition - 在输入上:如果需要,是一个对齐字段。在输出上:对齐字段的偏移量。 
        返回:
            已格式化的数字字符串 
      

  3.   

    DecimalFormat fornat = new DecimalFormat("0.##");
    System.out.println(fornat.format(5.66666));
      

  4.   

    import java.math.BigDecimal;
    double dbl = 5.6666;BigDecimal bd = new BigDecimal(String.valueOf(dbl));
    double scale1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP)
                      .doubleValue();
    double scale2 = bd.setScale(2, BigDecimal.ROUND_HALF_UP)
                      .doubleValue();
    double scale3 = bd.setScale(3, BigDecimal.ROUND_HALF_UP)
                      .doubleValue();
    输出结果非别是
    scale1:5.7 
    scale2:5.67
    scale3:5.667
      

  5.   

    JDK 5.0+String str = String.format(".2f", 5.6666);
      

  6.   

    JDK 5.0+ 也可以采用 C 语言风格的输出:System.out.printf("%.2f%n", 5.6666);