Integer.parseInt和带十进制数的字符串格式

时间:2013-09-12 15:22:56

标签: java

我尝试将字符串值转换为int。 字符串值包含十进制数,但我无法以int格式转换此值。

我写了这段代码:

public static void main(final String[] args){

    System.out.println("Test");
    final String nombre = "3.0";
    int entier;
    entier=Integer.parseInt(nombre);
    try
    {
        System.out.println("result :" + Integer.parseInt(nombre));
    }
    catch(final NumberFormatException nfe){
        System.out.println("NumberFormatException: "+nfe.getMessage());
    }
}

我没有结果。 提前感谢您的帮助:)

5 个答案:

答案 0 :(得分:3)

由于它是字符串中的浮点数,因此请使用Float.parseFloatDouble.parseDouble代替Integer.parseInt

答案 1 :(得分:2)

您的StringDouble而不是Integer

         try
         {
             System.out.println("result :" + Float.parseFloat(nombre));
              // OR
             System.out.println("result :" + Double.parseDouble(nombre));
         }

答案 2 :(得分:2)

从您的描述中我了解到您想要打印一个int。你可以这样编码:

    public static void main(final String[] args) throws ParseException {
            NumberFormat formatter = NumberFormat.getInstance();
            formatter.setParseIntegerOnly(true);
            System.out.println("Test");
            final String nombre = "3.0";
            int entier;
            entier=formatter.parse(nombre).intValue();
            System.out.println("result :" + entier);
        }

NumberFormat将完成这项工作

答案 3 :(得分:2)

您仍然可以使用相同的输入。试试

  System.out.println("result :" + new Double(nombre).intValue());

答案 4 :(得分:1)

我不确定你在这里要做什么,但这是你的代码的一部分:

public static void main(final String[] args){

    System.out.println("Test");
    final String nombre = "3.0";
    float entier;
    entier=Float.parseFloat(nombre);
    try
    {
        System.out.println("result :" + Float.parseFloat(nombre));
    }
    catch(final NumberFormatException nfe){
        System.out.println("NumberFormatException: "+nfe.getMessage());
    }
}

Bottomline:使用Float.parseFloat或Double.parseDouble