关于java:Integer.parseInt和带十进制数的字符串格式

Integer.parseInt and string format with decimal number

我尝试将字符串值转换为int。字符串值包含一个十进制数字,但我无法将该值转换为in t格式。

我写的代码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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());
    }
}

我没有结果。事先感谢您的帮助:)


因为它是字符串中的浮点数,所以使用Float.parseFloatDouble.parseDouble代替Integer.parseInt


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

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


根据您的描述,我理解您想要打印一个int。您可以这样编码它:

1
2
3
4
5
6
7
8
9
    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);
        }

数字格式可以完成这项工作


你的StringDouble而不是Integer

1
2
3
4
5
6
         try
         {
             System.out.println("result :" + Float.parseFloat(nombre));
              // OR
             System.out.println("result :" + Double.parseDouble(nombre));
         }

我不知道你想在这里做什么,但这是你的代码的一部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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());
    }
}

底线:使用float.parsefloat或double.parsedouble