我尝试将字符串值转换为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());
}
}
我没有结果。 提前感谢您的帮助:)
答案 0 :(得分:3)
由于它是字符串中的浮点数,因此请使用Float.parseFloat
或Double.parseDouble
代替Integer.parseInt
答案 1 :(得分:2)
您的String
是Double
而不是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