当前位置: 首页 > news >正文

java中的浮点数计算

在java语言中无法精确计算浮点数,例如:
float a1,a2;
System.out.println("请输入两个浮点数:");
Scanner sc=new Scanner(System.in);
a1=sc.nextFloat();
a2=sc.nextFloat();
System.out.println("这两个浮点数的和是:");
System.out.println(a1+a2);
sc.close();
这串代码输入0.01和0.05
输出结果是一个近似于0.06的值,并不是0.06

要想解决,可以用以下的方法:
1.自己的思路:利用以前提到过的高精度数的计算方式,可以实现。不过缺点很明显,只能够计算小数点后位数不多的情况,不过应对目前所学应该够用

2.利用java中自带的类BigDecimal:
实现代码如下:
BigDecimal num1=new BigDecimal("0.01");
BigDecimal num2=new BigDecimal("0.05");
//由于BigDecimal是个类,所以不能直接用算术运算符+,不过能用类中自带的成员函数
System.out.println(num1.add(num2));
这样就能够避免浮点数运算时的精度丢失问题。

http://www.hskmm.com/?act=detail&tid=13865

相关文章:

  • XYCTF2025复现(WEB)
  • 洛谷 P13973 [VKOSHP 2024] Nightmare Sum
  • 发布/订阅(Publish/Subscribe)与交换机(Exchange)
  • 线性结构之链表
  • 二叉树最近公共祖先
  • AI 编程“效率幻觉”:为何你感觉快了,项目却慢了?
  • lc1033-移动石子直到连续
  • 一些正在制作的“格林达姆”测试项目,以及“假无损”
  • 个人项目
  • 北京 意大利学签 北京意大利签证中心 贵宾 vip vfs
  • 第1周
  • 多商家在线客服系统 - 客服用户表设计方案
  • 九月22号
  • 25.9.22 继续MySQL
  • 使用python读取windows注册表
  • 当日总结
  • 3123004481
  • 使用python读取windows日志表
  • 开机RAM分析调试SOP
  • 9.20 模拟赛 T4
  • 2025.9.21 测试 (a1a2a3a4a5)
  • 原码、反码和补码
  • Русский язык
  • 基于Hex Editor Neo的二进制文件模板
  • 【F#学习】字符
  • kubebuilder创建Operator示例
  • 集训总结(八)
  • 使用try-finally结构执行状态重置
  • java03预习
  • x6831卡顿分析