- 博客(5)
- 收藏
- 关注
原创 Java精度丢失问题及解决方法
引入:小a某天突发奇想,如果我用计算机输出0.1+0.2,那么会输出0.3吗?恭喜你,得到结果:0.30000000000000004!可是这次的输出结果竟然是正确的3.0!为什么呢?不仅仅是Java中,在C++、JavaScript等各种带浮点数计算的语言中都会出现这样的问题。其实是因为在数的进制转换过程中出现了问题!什么是精度丢失?
2023-05-18 10:07:05
3114
4
原创 2023年第十四届蓝桥杯Java B组D、G题解
每购买 2 件商品,假设其中较便宜的价格是 P(如果两件商品价格一样,则 P 等于其中一件商品的价格),就可以从剩余商品中任选一件价格不超过 P/2的商品,免费获得这一件商品。最后单独购买剩下的一件价格为 1 的商品。( x 2 , y 2 ) 依次是 R 1 的左下角和右上角坐标, ( x 3 , y 3 ) 和 ( x 4 , y 4 ) 依次是 R 2 的左下。输入只有一行,包含 8 个整数,依次是: x 1 , y 1 , x 2 , y 2 , x 3 , y 3 , x 4 和 y 4。
2023-05-18 09:00:11
1065
4
原创 2023年第十四届蓝桥杯Java B组个人题解(填空题)
看到这题的数据就秒想到BigInteger,奈何在考场上已经忘了BigInteger的用法了。我们当然不能直接算出S的最后结果并取余,那不仅爆long,甚至爆BigInteger了。大学生涯中第一次参加蓝桥杯,赛前也刷了部分题(简单的枚举,模拟,贪心,dfs等)。不过讲真eclipse是真难用,习惯了IDEA的快捷键和补全的同学建议在赛前复习一下eclipse的使用。下面和大家分享一下两道最简单的(我是这么认为的)填空题题解。这道题考察的是进制转换,会调用API就可以。如有错误,欢迎评论区指正!
2023-05-12 11:37:02
987
7
转载 为什么计算机的起始时间是1970-1-1?
那么,简单做一个数学计算,如果用当时的时间戳计算方式来表示时间的话,Unix时间戳最多可以使用4294967296/(60*60*24)/60 = 828.5天(一天有60*60*24秒,每1/60秒会占用一个时间戳)。因为我们处于东八区,时间比标准时间要快8小时,如果我们把时间调整成1970-01-01 00:00:00,那么标准时间就会是比这个时间少8小时,即1969年12月31日16时0分0秒。于是,Unix时间戳被定义出来,即通过当前时间和一个"纪元时间"进行对比,其间相差的秒数作为时间戳。
2023-05-12 09:49:45
697
2
转载 大数操作为什么总对1e9+7取模?
大数操作为什么总对1000000007取模?其实主要原因是:随着n增大,f(n)会超过Int32甚至Int64的取值范围,导致最终的返回值错误。
2023-05-06 12:47:19
825
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人