例如 一个String  str = "12.3";要转换一个Double 类型的 即 str 转换为 double类型 并且要保留两位小数 形如 double dou = 12.30 ;
怎么转啊? 这只是一个特例 还要考虑到普遍情况?就要要 保证str转为一个double型的 小数点后要两位数?
在此感谢了啊? 

解决方案 »

  1.   


    Double d=new Double("12.3").doubleValue();
    java.text.DecimalFormat   df   =   new   java.text.DecimalFormat();   
    df.setMaximumFractionDigits(2);   
    df.setMinimumFractionDigits(2);
    String dd=df.format(d);
    System.out.println(dd);
      

  2.   


    java.text.DecimalFormat     df     =   new     java.text.DecimalFormat("##.00");      
      System.out.println(df.format(3.2));
      

  3.   

    //这个方法用来将double格式化
    public double roundDouble(double val, int precision) {   
            Double ret = null;   
            try {   
                double factor = Math.pow(10, precision);   
                ret = Math.floor(val * factor + 0.5) / factor;   
            } catch (Exception e) {   
                e.printStackTrace();   
            }   
            return ret;   
        }  调用这个方法时 第一个参数传入一个double类型的参数 Double.parseDouble(String)
    第二个参数是你要保留的小数点位数:2
      

  4.   

          String str="123.20";
          double d = Double.parseDouble(str);
      

  5.   

        上面方法丰富,但满足楼主要求的好像没有啊!
        
         如果不要求将String转化成double,1楼的方法倒真不错!     UP!     
      

  6.   

    这样就可以了
    import java.text.DecimalFormat;public  class KUU {

    public static void main(String[] args) {
    String  str = "12.3"; 
       double sum=Double.valueOf(str);
       DecimalFormat df=new DecimalFormat();
       df.setMaximumFractionDigits(2);
       df.setMinimumFractionDigits(2);
       System.out.println(df.format(sum));
    }
    }
      

  7.   

    回一下8楼mm  DecimalFormat df=new DecimalFormat(); 
    这个 对象 操作出来的数据 还是String 类型的哦!
      

  8.   

    7楼的也说的对啊 我看后 好像 算出来的 还是 String
     我想算出来后 是 double 型 的 
      

  9.   

    首先,说个问题  System.out.println(3.20);输出的结果是3.2!
    其次,想问个问题!这个double要用在什么地方!是不是要在不同语言之间传输!如果是,2楼的就可以!如果不是,可以说明下么!大家也许会找到曲线救国的方法!
      

  10.   

    这个返回的是String 类型的·
      

  11.   

    首先我要告诉各位楼上的兄弟们包括LZ,学习基础很重要!如果是double型  12.3 和12.30完全是相等的?如果你要格式化成两位小数,那其实就是只有打印出来的时候才有必要,其实这已经就是字符串。这段代码是从上面拷下来的,本人也比较喜欢用这个java.text.DecimalFormat     df     =   new     java.text.DecimalFormat("##.00"); //格式数字的工具类。     
      System.out.println(df.format(12.3));
      

  12.   

    返回一个double类型的并且是小数点后保留两位,xxx.x0的情况做不到。
      

  13.   

    不用double用float足够容纳两个小数
    java.text.DecimalFormat    df    =  new    java.text.DecimalFormat("##.00"); //格式数字的工具类。   
      System.out.println(df.format(12.3)); 
      

  14.   

    就是 导出Excel 因为  有的只有一位 有的有两位 有的没有小数
    导出来 就是这样的 :
    123.45
       120
     100.1
      99.8这虽然是按降序排的  但客户感觉不好 最好是 能
    123.45
    120.00
    100.10
     99.80要是double类型 是因为 到excel 中是 Number 类型的 
      

  15.   

    DecimalFormat df=new DecimalFormat("0.0");String inputstr=JOptionPane.showInputDialog("请输入:");double a=Double.parseDouble(inputstr);System.out.println("转换的结果是:"+df.format(a));
      

  16.   

    符号    位置 本地化?  含义  
    0       数字  是     阿拉伯数字  
    #     数字字  是     阿拉伯数字,如果不存在则显示为 0  
    .       数字  是    小数分隔符或货币小数分隔符  
    -       数字  是     减号  
    ,       数字  是     分组分隔符  
    E       数字  是  分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。  
    ; 子模式边界  是  分隔正数和负数子模式  
    % 前缀或后缀  是  乘以 100 并显示为百分数  
    \u2030前缀
          或后缀  是  乘以 1000 并显示为千分数  
    ¤ (\u00A4)      
      前缀或后缀  否  货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。  
    ' 前缀或后缀  否  用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"。  
    问题分析:
    导出Excel 因为  有的只有一位 有的有两位 有的没有小数 
    导出来 就是这样的 : 
    123.45 
      120 
    100.1 
      99.8 这虽然是按降序排的  但客户感觉不好 最好是 能 
    123.45 
    120.00 
    100.10 
    99.80 要是double类型 是因为 到excel 中是 Number 类型的 方法:package test;import java.text.DecimalFormat;
    import java.util.Scanner;
    public class api {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    double n=sc.nextDouble();
    DecimalFormat  df     =   new    DecimalFormat("-##.00");      
      System.out.println(df.format(n));
    }
    }注: (DecimalFormat f).format(a)格式化一个 double 值,以生成一个字符串。