Java误区之长整除

深入分析:Python 打印方式、整除与取模关系 对于任意整数a(被除数)和正整数b(除数),存在唯一的整数对q(商)和r欧几里得除法(带余除法)其中 0 ≤ r < |b|a // b得到的就是q(商)a % b得到的就是r(余数):简洁,适合调试:清晰,适合教学和日志根据需求选择合适的方式。 阅读详情

看下面这个程序:

public static void main(String[] args){                 
	                                                    
	final long MICROS_PER_DAY = 24*60*60*1000*1000;     
	final long MILLIS_PER_DAY = 24*60*60*1000;          
	                                                    
	System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
	                                                    
}                                                       

本以为结果应该是1000,但是运行后,发现结果竟然是5.


以上就是长整除的误区了, 虽然 MICROS_PER_DAY 被定义为了long型,但是由于java按int型来做的乘法,

所以,无形之中,结果溢出了.


知道原因后,修改成以下就OK了

public static void main(String[] args){                 
	                                                    
	final long MICROS_PER_DAY = 1L*24*60*60*1000*1000;     
	final long MILLIS_PER_DAY = 1L*24*60*60*1000;          
	                                                    
	System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
	                                                    
}                                                       


精确地加减乘除运算 该类提供了精确地加减乘除运算,可以到你想精确的位数 立即下载

相关推荐

跨模型的 API 调用与集成:使用 Spring AI 构建可移植的 API 代码,支持多个 AI 模型(如 OpenAI、Anthropic 等)的调用

Spring AI 是 Spring 生态系统中的一部分,旨在提供一种简单、可扩展的方式来集成人工智能模型。Spring AI 使得开发者可以使用现有的 Spring 体系结构方便地访问多种 AI 模型和服务,例如 OpenAI、Anthropic、HuggingFace 等。

秋元的博客 2404

时间处理相关工具类(个人记录)

package com.supermarket.goods.utils; import org.springframework.util.Assert; import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTi

weixin_43145724的博客 230

Abaqus 导出单元刚度矩阵和全局刚度矩阵

Abaqus 导出单元刚度矩阵和全局刚度矩阵

科技芯风 1万+

表达式之谜——长整除

该问题所涉及的程序是整除两个long型的数值。被除数表示一天里的微秒数,而除数表示一天里的毫秒数。这个程序会打印什么呢?public class LongDivision { public static void main(String[] args) { final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000; ...

lanicc's blog 317

从报错到定位:Memtest86 DQ位算法解析与实践指南

本文深入解析了Memtest86内存测试工具报错信息的解读方法,重点介绍了通过地址解析、数据转换、位比对和DQ定位四步算法,精准锁定故障DQ位的实践流程。文章以DDR4和DDR5为例,详细拆解了从十六进制报错到二进制比对的完整步骤,并提供了从单个报错分析到故障模式诊断的进阶指南,帮助用户将抽象的报错信息转化为具体的维修或排查依据。

sre5engineer的博客 486

Java开发者的福音:Aspose 25.10全系列(Cells/Words/PDF/Slides)最新版破解与集成保姆级教程

本文为Java开发者提供了Aspose 25.10全系列组件(Cells/Words/PDF/Slides)的最新版破解与集成保姆级教程。通过详细的Maven依赖配置、字节码修改技术绕过限制,以及Spring Boot项目中的实战集成指南,帮助开发者高效实现Office文档处理功能,提升开发效率。

weixin_30919429的博客 346

Java长整形

话说有这样一个小例子: MICROS_PER_DAY表示一天的微秒数 MILLIS_PER_DAY表示一天的毫秒数 然后下面例子的结果是多少呢? 1 public class Test3 { 2 public static void main(String[] args) { 3 final long MICROS_PER_DAY = 24 * 60 ...

weixin_30511039的博客 228

基于PlatformIO与CMSIS的STM32库函数开发实战:从环境搭建到外设驱动

本文详细介绍了基于PlatformIO与CMSIS的STM32库函数开发实战,从环境搭建到外设驱动实现。通过对比传统IDE,PlatformIO结合CMSIS框架在跨平台开发、代码可移植性和调试体验上更具优势。文章包含PlatformIO.ini配置详解、GPIO/USART驱动开发实例及常见问题解决方案,帮助开发者高效完成STM32项目开发。

weixin_29190169的博客 423

Android除法运算,保留小数

进行Android开发已经差不多2年多了,第一次写这个博客。 再开发中遇到int/int,我们希望保留小数点,那怎么办呢? 我写了个方法可以进行此操作。 /** * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 * 定精度,以后的数字四舍五入。 * @param v1 被除数 * @param v2 除数 * @par

gemgao的博客 1万+

保姆级教程:Halcon 3D点云匹配与差异分析避坑指南(从采样到可视化)

本文提供了一份详细的Halcon 3D点云匹配与差异分析实战指南,涵盖从模型准备到可视化的全流程。重点解析了STL文件读取单位误区、点云采样密度优化、表面模型创建技巧以及差异分析的专业手法,帮助用户避开常见陷阱,提升工业检测效率与精度。

weixin_33728268的博客 402

RK3588上rknn_toolkit_lite2报错解决:手把手教你更新librknnrt.so的正确姿势

本文针对在RK3588平台上使用rknn_toolkit_lite2时遇到的“Invalid RKNN model version”等常见错误,提供了完整的诊断与解决方案。文章深入剖析了RKNN生态系统各组件(如librknnrt.so、RKNN Server)版本不兼容的根源,并手把手指导如何安全、正确地更新librknnrt.so运行时库,确保AI模型在RK3588 NPU上实现高效推理。

weixin_29189003的博客 521

整数快速除以2并只保留整数部分

从输出结果可以看到,直接使用整数除以整数所得到的结果就是只保留整数部分的结果。这里特别需要注意的是,所谓的保留整数部分,对于正数是向下取整,对于负数则是向上取整。普通百姓觉得这样的功能已经实现,非常完美。但是对于大佬来说,不同语言底层除法实现的差异可能给自己写的功能带来性能影响,因此大佬融入到二进制的世界中,用位移来进行除法。

萝卜地里的兔子的博客 1303

【异常】Warp终端AI功能403封禁报错I‘m sorry, I couldn‘t complete that request.Request failed with error: ErrorSta

本文针对Warp终端出现的AI功能定向封禁报错,完整还原脱敏后的报错信息、深度解读报错本质,并提供分优先级的全流程可落地解决方案,可直接用于技术排查、内部知识库归档。

奶爸的编程之路,也就一周冷个三天 266

闰年判断全解析:从历法原理到编程实战避坑指南

日期处理是编程与数据分析中的基础操作,其核心挑战之一在于准确处理时间跨度。地球公转周期(回归年)约为365.2422天,与公历的365天存在误差,这需要通过设置闰年来调和历法与季节的同步。格里高利历采用精密的三层规则(四年一闰,百年不闰,四百年再闰)来修正这一误差,使年平均长度接近365.2425天。这一机制对确保日期计算、财务周期、合同有效期等场景的准确性至关重要。在技术实现上,开发者需掌握清晰的逻辑判断顺序,并优先使用如Python的`calendar.isleap`或Java的`java.time.Y

weixin_34068198的博客 399

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

读Java Puzzlers笔记: 表达式问题

    一.奇数性判断一个数是否为奇数,方法: publicstaticbooleanisOdd(inti){ return(i%2)!=0; } 或者: publicstaticbooleanisOdd(inti){ return(i&amp;1)!=0; } 不要使用i%2==1来判断,因为它无法判断负奇数的情况.二.浮点数浮点数计算一直是计算机中...

行走,思考 231

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

《java解惑》 笔记

1、奇偶性 return (n % 2 == 1);问对于int n, 上式可否判断n奇偶性? 刚开始,认为可以的,但其实是错误的,对于整数n对2取余, 结果有1, 0, -1。 所以如果说 return (n % 2 != 0) 这样完全是可以的 高效版本:return (n & 1) != 0; 2、浮点数的精度问题 System.out.println(2.

java 793

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

关于整除

System.out.println(10/40); 你会觉得是好多???0.25?0? 告诉你吧 是0,整除应该默认的是会作为int 处理,所以是0 想要得到0.25??? 很简单 将他强转成double...

不要让梦想蒙尘!!!对自己狠一点!!! 265

前缀和 560. 和为K的子数组 974. 和可被 K 整除的子数组

和为K的子数组 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 解题思路 误区:不要等计算完全部前缀和再去重新遍历查找是否有符合条件的,这样会有问题,比如k=0时,the_sum - k 一直等于the_sum,就算the_sum只有一个,结果的数量也会增加一,所以这样不对。应该每计算一个前缀和就在哈希表中进行查找,这样就不会查找到自己本身.

口袋里的星星的博客 262

JS中正确使用整除Math.ceil

1.提出问题         有n条记录,显示的时候分成x页,每页p条记录,一共有多少条记录。其中n,x,p都是整型。          在程序里我是这样写的:         int x=(int)Math.ceil(n/p);         如果n=14, p=5, 那么x=?         程序里的结果是x=2         这显然是错误的!

Xiang 5443

贪心算法实战:用Java解决找零钱问题的5个常见误区与优化技巧

本文深入探讨了使用Java实现贪心算法解决找零钱问题时的5个常见误区与优化技巧。文章指出,贪心算法并非总能得到最优解,其有效性依赖于币值体系,并详细分析了忽略输入排序、边界条件处理不当等陷阱。同时,提供了动态规划作为备选方案,并介绍了面向对象封装、处理库存约束等高级优化策略,帮助开发者在实际项目中做出更稳健的选择。

chair的专栏 90

Java误区之判断奇数

在整数中,不能被2整除的数叫做奇数. 所以,一直以来,我判断一个数是否是奇数,都是这么写: public static boolean isOdd(int i) { return (i % 2) == 1; } 如果输入的数是正

菜鸟的Android之路 1032

编程入门:从数学应用到代码实现的整除与取余运算

整除(//)和取余(%)运算是编程中最基础的算术操作,它们源自数学中的整数除法概念。在计算机科学中,这些运算不仅是算法设计的基石,更是解决实际问题的关键工具。从计算最大公约数到实现循环队列,从商业库存管理到金融系统开发,这些基础运算无处不在。以'小玉买文具'这类经典编程练习题为例,它生动展示了如何将数学思维转化为代码实现。Python等现代编程语言中,整除运算总是向下取整,而取余运算则遵循a%b=a-(a//b)*b的数学定义,这与C/C++等语言的处理方式有所不同。掌握这些基础运算的底层原理和语言特性差异

weixin_32715349的博客 273

从Fedya and Maths题解看模幂循环与超大数整除判断的竞赛技巧

模运算(Modular Arithmetic)是计算机科学和编程竞赛中处理大数运算与防止溢出的基础工具,其核心原理是利用余数的有限性,将无限域的运算映射到有限集合上。在模意义下,幂运算(a^n mod m)的值会随着指数n的增大呈现周期性循环,这一性质源于状态的有限性(抽屉原理)。这一技术价值在于,它能将指数级增长的计算问题,转化为寻找循环节(周期)的O(1)查询问题,极大地优化了算法效率。典型的应用场景包括密码学(如RSA)、哈希算法以及解决编程竞赛中涉及超大指数和取模的数学问题。本文以一道经典竞赛题为例

weixin_34267123的博客 414

一些误区,遍历次数越少并不一定最优

责任链问题 误区:遍历次数越少,速度越快? 也许大家觉着遍历的次数越少,速度越快,这是很多程序员的一个误区,程序运行的速度取决于空间复杂度和时间复杂度,若遍历过程中什么事都不干,那无疑遍历次数越少,速度越快, 下面我来举一个例子 处理集合里面的数据,数字必须为偶数,能被3整除,还必须包含4 抽象类过滤器祖宗,包含两种方式的过滤 AbstractFilter....

万物皆导 975

java记——关于continue的误区

问题及代码: 问题描述: 在循环里累加,如果这个数恰好能整除三时,跳过 程序代码: 1错误版 public class Que { public static void main(String[] args) { int i=0; int sum=0; for(;i<4;i++) { if (i % 3 == 0) { i++; cont

舒绾 844

JAVA语言表达式十大谜题【上】

🎉博客首页:痛而不言笑而不语的浅伤 📢欢迎关注🥳点赞👍收藏⭐留言📝欢迎讨论! 🔮本文由痛而不言笑而不语的浅伤原创,优快云首发! 🌋系列专栏:《数据结构与算法》 🧿首发时间:2022年5月18日 ❤:热爱Java学习,期待一起交流! 🙏🏻作者水平有限,如果发现错误,求告知,多谢! 🥰有问题可以私信交流!!! 目录 十大谜题【上】 谜题一:奇数性 谜题二:找零时刻 谜题三:长整数 谜题四:初级问题 谜题五:十六进制的趣事 总结: 十大谜题【上】 谜题...

weixin_65657777的博客 1289
上一篇: Java误区之判断奇数
下一篇: Android触摸事件的消费
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值