0

我尝试将字符串值转换为 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());
    }
}

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

4

5 回答 5

3

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

于 2013-09-12T15:24:38.493 回答
2

String的是 aDouble而不是Integer

         try
         {
             System.out.println("result :" + Float.parseFloat(nombre));
              // OR
             System.out.println("result :" + Double.parseDouble(nombre));
         }
于 2013-09-12T15:25:19.083 回答
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 将完成这项工作

于 2013-09-12T15:30:37.560 回答
2

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

  System.out.println("result :" + new Double(nombre).intValue());
于 2013-09-12T15:30:59.867 回答
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());
    }
}

底线:使用 Float.parseFloat 或 Double.parseDouble

于 2013-09-12T15:31:33.237 回答