java 转化数据类型小问题
“1.338035e+12”这是一个string,怎么把它变成long型本来这样就能搞定了longl=(long)1.338035e+12;,但变成了string型怎么转...
“1.338035e+12” 这是一个string,怎么把它变成long型
本来这样就能搞定了long l=(long) 1.338035e+12;,但变成了string型怎么转化,就是讲这个string转化为他对应的long型 展开
本来这样就能搞定了long l=(long) 1.338035e+12;,但变成了string型怎么转化,就是讲这个string转化为他对应的long型 展开
3个回答
展开全部
刚才看错问题了,没看到你用了科学计数。而且使用了e,这样的话转化为double比较好,不会丢失精度,转为long的话就有可能了。
正确的转化方法如上图所示。字符串写法需要改一下,加号要去掉哈。
虽然是个小问题,就拓展地说一下,所谓知一而知一百
实现你的要求,调用Long.parseLong(str)或者Long.valueOf(str)方法,都可以使字符串转为长整型,但是必须保证字符串是数字形式,不能包含数字以外的字符,如果是整型数字,小数点也不能有。区别是前者得到的是基本类型long,后者得到前者的包装类型Long,在jdk1.5及以上版本中,基本类型和其对应的包装类(如long对应Long,int对应Interger,float对应Float)可以直接隐式的转换,所以在使用上差异很小。
顺便看图中的代码,我特意把最后一个方法没有写全,你可以看到,除了可以把字符串转为各种基本类型,还可以各种类型的数据,通过String.valueOf(…)转为为字符串,它可以接收多种类型的数据,将其转为字符串,也就说明java中的字符串,可以表示任何类型的数据,非常方便。
希望我的回答能帮助你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询