黑马程序员技术交流社区
标题:
字符串转换成整形的错误
[打印本页]
作者:
唐僧踏歌
时间:
2014-4-16 16:47
标题:
字符串转换成整形的错误
本帖最后由 唐僧踏歌 于 2014-4-23 12:25 编辑
String st="1213.21";
int in=Integer.parseInt(st);
System.out.println("in="+in);
复制代码
这里为什么会出错误,打印不出来?
作者:
榨菜
时间:
2014-4-16 17:00
parseInt 转换的是整数, 小数点是不能被转换的。 试下Double里面的parseDouble
作者:
月光海
时间:
2014-4-16 17:02
public static void main(String[] args) {
// TODO Auto-generated method stub
String st="1213.23";
double d =Double.parseDouble(st);
System.out.println("in="+d);
}
复制代码
把int换成double,Integer换成Double类就可以,或者是先转成double,再用强转转成int也行
作者:
唐僧踏歌
时间:
2014-4-16 17:31
榨菜 发表于 2014-4-16 17:00
parseInt 转换的是整数, 小数点是不能被转换的。 试下Double里面的parseDouble
谢谢 ,换成Double是可以,我还以为只要是字符串,就可以转换成想要的整形,没想到还得根据字符串选择整形。。。。
作者:
⒈心只霸占沵
时间:
2014-4-16 17:36
String st="1213.21";
int in=Integer.parseInt(st);//Integer只能转换"12133"这样的字符串 "1213.21" Double.parseDouble("1213.21")才可以转
System.out.println("in="+in);
复制代码
作者:
skyfly
时间:
2014-4-16 17:45
你这是对各种数据类型的不熟悉,如果熟悉的话就不会出错了,int只能是整形的要有小数要不float 要不double类型。 以下数据类型转换你可以看一下。
1)将字符串转化为整型;
int i = Integer.parseIn(String str);
int i = Integer.valueOf().intValue();
注:Integer.parseIn 和 Integer.valueOf 不同,前者生成的是整型,而后者是一个对象,所以要通过intValue()来获得对象的值;
字串转成 Double, Float, Long 的方法大同小异.
2) 整型转化为字符串:
String str = String.valueOf(int i);
String str = Integer.toString(int i);
String str = “” + i ;
注: Double, Float, Long 的方法大同小异.
3) Long转化为date:
SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//tieml,timef是long,前面转化过来的
Date date = new Date(timel - timef);
String time = sf.parse(date);
4)、float型转换为double型:
float f1=100.00f;
Float F1=new Float(f1);
//F1.doubleValue()为Float类的返回double值型的方法
double d1=F1.doubleValue();
作者:
雨落千木的时节
时间:
2014-4-16 20:44
JDK API对Inegger类的parseInt方法是这样解释的:
public static int parseInt(String s)
throws NumberFormatException将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。
参数:
s - 包含要解析的 int 表示形式的 String。
返回:
用十进制参数表示的整数值。
抛出:
NumberFormatException - 如果字符串不包含可解析的整数。
你这里的错误很明显在传递参数时应该这样写:int in=Integer.parseInt("st");
参数st要加引号,表示传递的是字符串
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2