首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

002. java.lang.NumberFormatException: Infinite or NaN,怎么破?

在 Java 只有浮点类型(Float&Double)实现了IEEE 754标准 它还有些变种异常:阅完本文就知道这些异常本质上其实是一回事了 java.lang.NumberFormatException...(假设你看不到异常栈)从抛出异常可以提取到两个关键信息供以我们查找异常源头: 异常类型:java.lang.NumberFormatException 异常detail msg:Infinite or...个地方出现过,看到这个数字该当场死心了:这条信息基本就是无效信息。...为了更清晰对号入座,笔者这里再来几个举一反三case: @Test public void fun2() { // 等于Double.POSITIVE_INFINITY场景 System.out.println...考虑到代码健壮性,实际场景是可以对这些异常做预处理:使用Double.isNaN()、Double.isInfinite()等方法来做分支逻辑 总结 在Java,浮点数0并非一个准确值,而是一个无限接近

81441
您找到你想要的搜索结果了吗?
是的
没有找到

剑指OfferV2(增) -- 数字序列某一位数字

Part1数字序列某一位数字 1题目描述 数字以 0123456789101112131415......格式作为一个字符序列,在这个序列2 位(从下标 0 开始计算)是 2 ,第 10 位是 1 ,第 13 位是 1 ,以此类题,请你输出第 n 位对应数字。...示例1 输入:0 返回值:0 示例2 输入:2 返回值:2 示例3 输入:13 返回值:1 2思路 & 解答 这道题是数学规律题,先找到规律,下面是几个区间 小于10,1~9,9个数字,9位...当我们查找第 n 位时候,需要先计算出 n 落在哪一个区间内,比如 8 就在 第一个区间内,161 就在第二个区间内,1314 就在第 3 个区间内; 计算出区间之后,需要 计算出所在数字是哪一个,...Integer.parseInt(num.charAt(index) + ""); } } C++ 代码如下: class Solution { public: /** * 代码类名

29810

每日一题:数组数字出现次数2

链接: 数组数字出现次数2 这道题是前一次博客另一个版本,想看上一个链接在下面: 链接: 数组数字出现次数1 ---- 这道题与上道题不太一样是这里出现次数是3次还有1次,所以异或方法不太好整...我们想,既然这个数组里面只有一个数字是出现一次,其他是三次,那用一个数组把这些出现三次数字,把他们每个二进制位统计并相加,会发现这个统计数组每个位数字都会是3倍数,那如果又多了一个出现一次数...,那他某个二进制位上统计完加上去,会让这个数组里面某个位数字变成模3余1,那么就可以找出这个数字为1进制位,最后再用二进制运算求出这个数字。...总的来说: 统计出数组所有的数,从第1位到第32位进制位有多少个1,然后找到数组模3余1位数,就是这个出现一次数字二进制位为1位数。...{ n += 1; } else { n += pow(2,

33710

LeetCode-面试题56-2-数组数字出现次数2

# LeetCode-面试题56-2-数组数字出现次数2 在一个数组 nums 除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次数字。...<= nums[i] < 2^31 # 解题思路 方法1、异或运算(单1为1,其余0): 先对所有数字各个位求和,求和之后数字,能够被3整除,则该位为0,不能够被整除,则该位为1,之后就能够通过...2进制求出对应数字 方法2、字典: 遇到没在字典加入,在字典就+1,最后取value为1key即可 方法3、数组: 先给数组排序,排序之后判断当前位和后面2位是否相等,如果相等则跳过这3位,i+3...如果不相等,则说明当前为就是要找数字 如果前面都没有找到,则最后一位必定是要找数字 # Java代码1 class Solution { public int singleNumber(int...,当遍历到余数为1时,res仅为1,比如数字8二进制为0100 // 从左到右遍历,当遍历到数字1时 // 此时res为1,想要从1变成8,需要向左移动2位,而for循环剩下次数就是需要

18120

str.replace(6, a, 2),这个替换数字2怎么来理解呢?

一、前言 前几天在Python铂金交流群【dcpeng】问了一道Python字符串处理问题,如下图所示。...二、实现过程 这里【Siris】给了一个解答,如下图所示: 其实就是说参数2表示只将6从左到右替换2意思。 后来【瑜亮老师】也给了一份文档说明,如下所示: 顺利解决粉丝问题。...如果有遇到问题,随时联系我解决,欢迎加入我Python学习交流群。 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一道Pandas时间处理问题,文中针对该问题给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【dcpeng】提问,感谢【Siris】、【瑜亮老师】给出思路和代码解析,感谢【此类生物】、【猫药师Kelly】等人参与学习交流。

47020

【Kotlin】数字类型 ( 安全转换函数 | 浮点型转整型 )

文章目录 一、安全转换函数 二、浮点型转整型 一、安全转换函数 ---- 在 Kotlin , 将 字符串 String 类型 转为 数字类型 , 如果 字符串 代表数字类型 与 要换转 数字类型...不匹配 , 就会出异常 ; 如 : 执行如下代码 , 就会报异常 ; 字符串内容是 0.5 , 显然是一个 Double 类型数字 , 强行将其转为 Int 类型 , 就会出现 NumberFormatException...; /** * 将字符串解析为[Int]数字并返回结果 * 如果字符串不是数字有效表示,则为' null '。...= toIntOrNull(radix = 10) 代码示例 : 字符串内容 0.5 是 Double 类型 , 转为 Int 显然会失败 , 但是使用 该 安全转换函数 , 不会报异常 , 而是返回...位 println("%.2f".format(1.77777)) } 执行结果 : 1 2 1.78

2.9K30

Gson 序列化Javabean时候要注意地方

E/AndroidRuntime(1306): Process: com.topnews, PID: 1306 08-11 01:19:28.126: E/AndroidRuntime(1306): java.lang.NumberFormatException...,传回时间一般都用时间戳,不要传回一个string  而是传回一个数字 08-11 01:11:01.096: W/System.err(1230): com.google.gson.JsonSyntaxException...: java.lang.NumberFormatException: Invalid double: "1970-01-01 08:00:00" 08-11 01:11:01.106: W/System.err...com.topnews.asyncTask.NewsAsyncTask.doInBackground(NewsAsyncTask.java:1) 08-11 01:11:01.146: W/System.err(1230): at android.os.AsyncTask$2....  因为前面看到那个博客里面他反序列时候只有这一行代码,好像是无法解析成功, 之后改正代码如下: java.lang.reflect.Type type = new TypeToken<NewsBean

73830

LeetCode-面试题53-2-0到n-1缺失数字

# LeetCode-面试题53-2-0到n-1缺失数字 一个长度为n-1递增排序数组所有数字都是唯一,并且每个数字都在范围0~n-1之内。...在范围0~n-1内n个数字中有且只有一个数字不在该数组,请找出这个数字。...0~n-1数组**(有序数组)**,数字和它对应下标一定是相等,缺失数子会造成,该数字之后数组下标在原本相等情况下+1 排序数组搜索问题,首先想到二分查找解决 分析可知,数组可以分为左右子数组...方法3、遍历下标比对: 先获得数组长度记为n,由于数组内数字在0~n-1范围内,所以可以直接遍历数组,当当前数组下标和数组值不相等时就是答案,否则说明缺失数组值不在数组,直接返回数组长度即可 #...无论数组是否有序,异或2次之后,缺失数字就是剩下,如果不缺失则2次异或完毕结果为0 # Java代码3 public class LeetCode53_2 { public static

50320

理解 Java NumberFormatException 异常

构造函数 如果我们在构造函数对不是数字字符串进行类型转换的话,将会有可能抛出这个异常。 例如我们尝试将一个字符串转换为 Integer 或Double 对象,但是输入字符串不是数字。...= new Double("two.2"); 我们如果运行上面的代码,我们可以看到 JDK 将会提示我们没有办法将输入字符串转换为整数类型。...Integer aIntegerObj = new Integer("1"); Double doubleDecimalObj = new Double("2.2"); 处理非数字类型方法 与构造方法错误类似...我们可以简单按照错误提示修改输入参数就可以了: int aIntPrim = Integer.parseInt("2"); double aDoublePrim = Double.parseDouble...在 Java ,负数是允许,但是你不能使用下划线,你只能使用划线。 语言特性数字格式化 这里我们说语言特性数字格式化主要是因为不同地区和国家对数字表达方式是不一样

6.3K00

还在用SimpleDateFormat格式化时间?小心经理锤你

小心经理锤你 [SimpleDateFormat] 场景 本来开开心心周末时光,线上突然就疯狂报错,以为程序炸了,截停日志,发现是就是类似下述一段错误 java.lang.NumberFormatException...CST 2020 Sat Jun 06 00:00:00 CST 2020 Exception in thread "Thread-7" Exception in thread "Thread-8" java.lang.NumberFormatException...(Double.java:538) 罪魁祸手浮出水面,就是SimpleDateFormat锅 [有趣] 线程不安全,去找Java文档里SimpleDateFormat: https://docs.oracle.com...ParseException e) { e.printStackTrace(); } }).start()); 使用Java 8时间处理...,一定要考虑到其调用到实例变量,Java8时间格式化DateTimeFormatter是用final修饰,不可变类,所以是线程安全,或者在线程调用ThreadLocal也是可以

1.1K01

【优雅避坑】不安全!别再共享SimpleDateFormat变量了-日期时间处理正确姿势

既然官方文档都说了在多线程访问场景必须使用「synchronized同步」,那么就来验证一下,多线程场景下使用SimpleDateFormat会出现什么问题。...正常情况下,以上代码results.size()结果应该是THREAD_NUMBERS。但是实际执行结果是一个小于该值数字。..." java.lang.NumberFormatException: For input string: "101.E1012E2" at sun.misc.FloatingDecimal.readJavaFormatString...由于我们在声明SimpleDateFormat sdf时候,使用是static 定义,所以这个sdf就是一个共享变量,那么SimpleDateFormatcalendar也可以被多个线程访问到...此时,[线程-1]继续往下执行,执行calendar.getTime得到时间就是[线程-2]改过之后

89420

Excel公式练习89:返回字符串第一块数字之后所有内容(续2

引言:在《Excel公式练习87:返回字符串第一块数字之后所有内容》和《Excel公式练习88:返回字符串第一块数字之后所有内容(续1)》,我们分别给出了解决这个问题两个公式,本文中,再次尝试着使用另一个公式来解决这个问题...图1 你公式应该处理任意长度字符串和任意长度数字——不仅仅是图1所显示长度。此外,不应该使用任何辅助单元格、中间公式或命名区域,或者VBA。 如何使用公式获得结果?...问题难点在于有一个文本块,然后是一个数字块,接着是我们实际想要提取文本/数字块。因此,由于前面有一个文本/数字块,很难确定第二个文本/数字位置。...),"")),LEN(A2)) 公式解析 1.找出字符串每个数字出现位置: FIND(ROW(1:10)-1,A2) 解析为: FIND({1;2;3;4;5;6;7;8;9;10}-1,A2) 解析为...;7;22;9},””) 返回: {10;8;"";"";21;"";"";7;22;9} 3.这样我们就可以计算出这些数字哪一个首先出现在字符串: MIN({10;8;"";"";21;"";"

2K20

【Java学习笔记之三十二】浅谈Javathrow与throws用法及异常抛出处理机制剖析

...}对其进行处理,那怕是最简单一句输出语句,或栈输入e.printStackTrace(); 3.如果是捕捉IO输入输出流异常,一定要在try{...}catch{...}后加finally...,也可以是一般程序语句;catch(){……}用于抓住异常,(Exception e)Exception是异常类型,必须是Exception(Exception是所有异常类父类)子类。...{}定义当出现异常时处理方法。finally{……}表示不管异常是否发生,都得进行finally{}处理。...在捕捉异常try{...}语句块,如果出现了异常,则该语句(出现异常语句)后程序语句都不执行,而是跳到catch{...}语句块执行异常处理。...如 1 public static void function() { 2 String s = "abc"; 3 System.out.println(Double.parseDouble

79960
领券