如何在Java程序中将double值作为命令行参数传递

时间:2018-12-09 12:59:17

标签: java

下面是我的程序

public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] args)
  {
   //Scanner scanner = new Scanner(System.in);
    //String str = scanner.nextLine();
    String str=args[0];
    try{
        BigDecimal dec=new BigDecimal(str);
      System.out.println(Double.parseDouble(str)+"\t"+str);

        if(dec.intValue()==dec.doubleValue()){
            System.out.println("This input is of type Integer.");
        }else{
            System.out.println("This input is of type Float.");
        }

    }catch(Exception e){
        System.out.println("This input is of type string.");
    }

   }
}

我想将float值作为命令行参数传递。我将值0.00057作为参数传递。但是它已经转换为000057。有人可以建议我吗。

1 个答案:

答案 0 :(得分:1)

我认为从字符串转换为数字时出了点问题,以确保定义十进制分隔符可以正常工作

   DecimalFormat df = new DecimalFormat();
   DecimalFormatSymbols symbols = new DecimalFormatSymbols();
   symbols.setDecimalSeparator('.');
   df.setDecimalFormatSymbols(symbols);
   Number n = df.parse(str);

   System.out.println(Double.parseDouble(str)+"\t"+str);

   if(n.intValue()==n.doubleValue()){
       System.out.println("This input is of type Integer.");
   }else{
       System.out.println("This input is of type Float.");
   }