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

建网站需要什么服务器哪些网站可以做平面设计

建网站需要什么服务器,哪些网站可以做平面设计,电子商务专业就业方向及就业前景,顺口的广告公司的名字目录 数据精度问题BigDecimal的正确使用构造陷阱数值比较除法舍入控制 RoundingMode 数据精度问题 Java开发中,Double类作为包装类用于处理双精度浮点数。浮点数double无法精确表示某些十进制小数(如0.1),导致运算结果出现误差 …

目录

  • 数据精度问题
  • BigDecimal的正确使用
    • 构造陷阱
    • 数值比较
    • 除法
    • 舍入控制 `RoundingMode`

数据精度问题

Java开发中,Double类作为包装类用于处理双精度浮点数。浮点数double无法精确表示某些十进制小数(如0.1),导致运算结果出现误差

double a = 0.1;
double b = 0.2;
System.out.println(a + b); // 输出 0.30000000000000004,而非0.3

需要精确计算的场景需要使用:BigDecimal,并通过字符串构造避免初始精度丢失。

BigDecimal d1 = new BigDecimal("0.1");
BigDecimal d2 = new BigDecimal("0.2");
System.out.println(d1.add(d2)); // 0.3

Double 比较推荐使用 Double.compare(a, b)

double a = 0.1;
double b = 0.1;
System.out.println(a == b); // trueDouble aD = 0.1;
Double bD = 0.1;
System.out.println(aD == bD); // false
System.out.println(Double.compare(aD, bD) == 0); // true

BigDecimal的正确使用

对于需要精确计算的场景,使用BigDecimal

构造陷阱

避免用double构造BigDecimal,否则传入的是不精确的二进制值。

double v = 0.946; 
System.out.println(v); // 输出正确,0.946
// 直接转 BigDecimal,实际内部值是不精确的二进制值,导致截取3位小数结果错误
double vv = new BigDecimal(v).setScale(3, RoundingMode.DOWN).doubleValue();
System.out.println(vv); // 输出错误值 0.945

正确做法:BigDecimal(字符串构造)

double vvv = new BigDecimal(String.valueOf(v)).setScale(3, RoundingMode.DOWN).doubleValue();
System.out.println(vvv); // 输出正确,0.946

数值比较

BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("1");
System.out.println(a.compareTo(b) == 0); // true,数值相等

除法

必须指定舍入模式和精度,处理无限小数

BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");
// 指定保留4位小数,四舍五入
BigDecimal result = a.divide(b, 4, RoundingMode.HALF_UP); // 3.3333

不处理无限小数会抛出异常 ArithmeticException

BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");
a.divide(b); // 抛出 ArithmeticException

舍入控制 RoundingMode

RoundingMode.UP 远离零方向舍入 2.53, -2.5-3
RoundingMode.DOWN 向零方向舍入 2.52, -2.5-2
RoundingMode.CEILING 向正无穷方向舍入 2.53, -2.5-2
RoundingMode.FLOOR 向负无穷方向舍入 2.52, -2.5-3
RoundingMode.HALF_UP 四舍五入(常用) 2.53, 2.42
RoundingMode.HALF_DOWN 五舍六入 2.52, 2.63

示例

// 测试数值
BigDecimal number = new BigDecimal("2.55");
String label = "正数 2.55";
int newScale = 1;System.out.println("--- 测试数值: " + label + " ---");// UP:远离零方向舍入
System.out.println("UP          : " + number.setScale(newScale, RoundingMode.UP));// DOWN:向零方向舍入
System.out.println("DOWN        : " + number.setScale(newScale, RoundingMode.DOWN));// CEILING:向正无穷方向舍入
System.out.println("CEILING     : " + number.setScale(newScale, RoundingMode.CEILING));// FLOOR:向负无穷方向舍入
System.out.println("FLOOR       : " + number.setScale(newScale, RoundingMode.FLOOR));// HALF_UP:四舍五入
System.out.println("HALF_UP     : " + number.setScale(newScale, RoundingMode.HALF_UP));// HALF_DOWN:五舍六入
System.out.println("HALF_DOWN   : " + number.setScale(newScale, RoundingMode.HALF_DOWN));

结果展示,

--- 测试数值: 正数 2.55 ---
UP          : 2.6
DOWN        : 2.5
CEILING     : 2.6
FLOOR       : 2.5
HALF_UP     : 2.6
HALF_DOWN   : 2.5

负数注意 UP 和 CEILING,DOWN 和 FLOOR 的区别。

  • UP 是远离零方向(对负数是“向下舍入”,绝对值更大)。
  • CEILING 向正无穷方向(即对负数是“向上舍入”,更接近零),类似于数学中向上取整。
--- 测试数值: 负数 2.55 ---
UP          : -2.6
DOWN        : -2.5
CEILING     : -2.5
FLOOR       : -2.6
HALF_UP     : -2.6
HALF_DOWN   : -2.5
http://www.dtcms.com/a/558172.html

相关文章:

  • 小杰-大模型(five)——大模型部署与应用——Qwen2.5-0.5B本地部署
  • Rabbitmq基础篇
  • 东莞营销网站建设服务微信营销的10种方法技巧
  • GTC2025 10月大会医疗健康与生命科学生态分析:从平台到临床的落地路径
  • 免费的网站怎么建六安网新科技集团有限公司
  • 如何通过芯片参考手册查看外设的引脚配置?
  • 邯郸做wap网站费用godaddy 网站上传
  • 美食网站建设策划书范文网站打开的速度特别慢的原因
  • 基于Java的LLM长上下文数据预处理方案:实现128k上下文智能数据选择
  • 关于QT打包 高版本
  • Webpack技术深度解析:模块打包与性能优化
  • 网站建设与管理名词解释wordpress根据分类id
  • 科技网站制作网站建设课设总结报告
  • 网站建设对旅游意义全网营销的渠道
  • JAVA111 HashMap Leecode:1 两数之和 3 无重复字符串的长度
  • 信息学奥赛一本通 ybt 1940:【07NOIP普及组】守望者的逃离 | 洛谷 P1095 [NOIP 2007 普及组] 守望者的逃离
  • 淘宝实时优惠券网站怎么做的甘肃建设监理协会网站
  • 工业一体机在UV固化机中的应用
  • 《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》--- 1.询问学号,2.寄包柜,3.合并两个有序数组
  • 陕西省关于网站信息内容建设南通网站建设企业
  • 【愚公系列】《MCP协议与AI Agent开发》003-大模型原理及MCP开发基础(LLM 的输入输出机制与上下文表示)
  • 国内酒店网站建设厦门房产网
  • 【开题答辩过程】以《基于微信小程序垃圾分类图像识别技术实现》为例,不会开题答辩的可以进来看看
  • 区块链论文速读 CCF A--USENIX Security 2025(3)
  • 美食网站建设策划报告企业开展网络营销方案
  • 和田网站制作南约社区网站建设
  • 江西省住房和城乡建设部网站谷歌seo外链平台
  • 使用 windeployqt 工具自动部署Qt依赖环境(DLL、插件、翻译文件等)
  • RDPWD!WDWParseUserData函数分析之Loop through user data--非常重要
  • php教育视频网站开发织梦cms视频网站建设