String转为long 类型报错原因:要转为long必须是int、double、float型[通俗易懂]

遇到该问题的解决办法一:StringstrTime="12.5416132";doubledblTime=Double.parseDouble(strTime); longlngTime=newDouble(dblTime).longValue();log.info("lngTime:"+lngTime);具体报错原因请看下面的例子和解释:上例子:stringa=…

大家好,又见面了,我是你们的朋友全栈君。

遇到该问题的解决办法一:

String strTime = "12.5416132";
double dblTime = Double.parseDouble(strTime);
		
long lngTime = new Double(dblTime).longValue();
log.info("lngTime:"+lngTime);

具体报错原因请看下面的例子和解释:

上例子:

string a =100.1;

long b=long.parse(a);

转换时报 “输入字符串的格式不正确”

当a =100.0 时

long b=long.parse(a,NumberStyles.AllowDecimalPoint);

可以正常转换,

而 a=100.9 时

long b=long.parse(a,NumberStyles.AllowDecimalPoint);

转换失败,报超过Int64的最大值或最小值,

原因解释:

问题一:long是整形也就是Int64类型,parse的对象必须是整形

问题二:

当a =100.0 时

long b=long.parse(a,NumberStyles.AllowDecimalPoint);

这是因为用了NumberStyles.AllowDecimalPoint

指示数字字符串可以具有小数点。 如果 NumberStyles 值包括 AllowCurrencySymbol 标志,分析的字符串包括货币符号,则小数分隔符字符由 NumberFormatInfo. CurrencyDecimalSeparator 属性确定。否则,小数分隔符由 NumberFormatInfo. NumberDecimalSeparator 属性来确定。

实际上是允许有小数点的出现,但作为long,还是不能parse非整数,此时的a是100.00,是可以丢去小数点作为整数的。也就是说long在parse的时候是默认把a处理后当成100来parse的。

问题三:

此时的a变成100.1,同样使用了NumberStyles.AllowDecimalPoint,但这时候long所parse的不再是一个整数,所以会提出异常,超过int64也就是long的范围,对于这个错误,可以先把a=100.1做一个转换变成整形,或者使用范围更广的double或decimal来parse,如decimal.Parse("100.1", NumberStyles.AllowDecimalPoint)

例子和解释来源于点击打开链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128601.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中集合转数组中_JAVA中集合转数组遍历[通俗易懂]

    java中集合转数组中_JAVA中集合转数组遍历[通俗易懂]JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray().代码:publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubCollectionc=newArrayList();c.add(newStudent(“kj”,12));c.add(newStude…

    2022年6月15日
    29
  • Kotlin入门(20)几种常见的对话框

    Kotlin入门(20)几种常见的对话框提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续吭哧吭哧兀自办完业务,比如转错钱了、误删资料了,往往令用户追悔莫及。所以对于部分关键业务,App为了避免用户的误操作,很有必要弹出消息对话框,提醒用户是否真的要进行此项操作。这个提醒对话框便是Ap…

    2022年6月22日
    100
  • 奇异值分解及几何意义「建议收藏」

    奇异值分解及几何意义「建议收藏」PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义。能在有限的篇幅把这个问题讲解的如此清晰,实属不易。原文举了一个简单的图像处理问题,简单形象,真心希望路过的各路朋友能从不同的角度阐述下自己对SVD实际意义的理解,比如个性化推荐中应用了SVD,文本以及Web挖掘的时候也经常会用到SVD。原文:Werecommendasingular

    2025年7月5日
    2
  • cocoapods使用_软线连接

    cocoapods使用_软线连接背景

    2022年9月27日
    1
  • 数据转换_数据转换服务是什么意思

    数据转换_数据转换服务是什么意思对数据进行转换就是对数据的合并、清理和整合。通过转换,能够实现不同的源数据在语义上的一致性。SAPBI的转换(Transformation)定义的就是对数据进行处理的规则。当数据从一个BI对象

    2022年8月2日
    8
  • 玩转xss

    玩转xss0x00前言很多人现在都没懂xss为什么这么鸡肋的漏洞能排到owasp前十名,xss做多也就拿来做个弹窗和打cookie,然后进入后台,感觉没啥意义,还不如弱口令来得实在。那么我们就先

    2021年12月11日
    106

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号