12年的时候在做一个电子商城项目,一个类似淘宝卖东西的网站。
B2C 商家对用户模式。
用户在平台选好商品,下订单,再进行支付。这个支付用的是第三方平台 umpay 。
订单是:60.00
支付金额:59.99
public static void main(String args[]){
System.out.println(6.00 - 5.10);
}
你可能会很天真地期望该程序能够打印出 0.90,但是它如何才能知你想要打
印小数点后两位小数呢?
如果你对在Double.toString 文档中所设定的将 double类型的值转换为字符串
的规则有所了解,你就会知该程序打印出来的小数,是足以将double类型的
值与最靠近它的临近值区分出来的最短的小数,它在小数点之前和之后都至少有
一位。因此,看起来,该程序应该打印 0.9 是合理的。
解决该问题的一种方式是使用某种整数类型,例如 int 或 long,并且以分为单
位来执行计算。如果你采纳了此路线,请确保该整数类型大到足够表示在程序中
你将要用到的所有值。对这里举例的谜题来说,int 就足够了。下面是我们用 int
类型来以分为单位表示货币值后重写的println 语句。这个版本将打印出正确答
案
解决该问题的另一种方式是使用执行精确小数运算的BigDecimal。它还可以通
过 JDBC 与SQL DECIMAL 类型进行互操作。这里要告诫你一点: 一定要用
BigDecimal(String)构造器,而千万不要用BigDecimal(double)。后一个构造
器将用它的参数的 “精确”值来创建一个实例:new BigDecimal(.1)将返回一个
表示 0.100000000000000055511151231257827021181583404541015625 的
BigDecimal。通过正确使用BigDecimal,程序就可以打印出我们所期望的结果
0.90:
import java.math.BigDecimal;
public class Test{
public static void main(String args[]){
System.out.println(new BigDecimal("2.00").
subtract(new BigDecimal("1.10")));
}
}
总之, 在需要精确答案的地方,要避免使用float 和 double;对于货币计算,
要使用 int、long 或 BigDecimal。对于语言设计者来说,应该考虑对小数运算
提供语言支持。一种方式是提供对操作符重载的有限支持,以使得运算符可以被
塑造为能够对数值引用类型起作用,例如BigDecimal。另一种方式是提供原始
的小数类型,就像 COBOL 与PL/I 所作的一样。
相关推荐
#### 二、找零时刻:货币计算的陷阱 **谜题背景** 本谜题探讨了货币计算中的一个常见问题:如何准确地计算找零金额。这个问题涉及到Java中双精度浮点数(`double`类型)的表示和计算精度问题。 **谜题描述** 谜题...
6. 找零计算:根据消费金额和支付方式计算找零。 7. 自拟问题:提出并解答一个与题目相关的数学问题。 文档内容中的数字和字母可能由于OCR扫描识别不准确而存在误差,但上述知识点是根据文档中给出的题目结构和内容...
#### 找零时刻谜题:浮点数运算的陷阱 **题目背景:** 本题旨在考察面试者对Java中浮点数运算的理解,特别是对于浮点数表示不精确性的认识。 **题目描述:** 题目给出了一段代码,用于模拟一个简单的找零场景。...
#### 谜题2:找零时刻 **题目解析** 这个谜题涉及到了二进制浮点数表示精度问题。题目描述了一个简单的找零场景:用户用2美元支付一个价值1.10美元的商品,程序应该计算找零金额。初始代码如下: ```java public ...
基于springboot的旅游景区游玩管理系统:前端 html、jquery、bootstrap,后端 maven、springmvc、spring、jpa;角色分为管理员、用户;集成景区游玩路线、游玩攻略、在线预订等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本功能:登录,注册,退出,个人信息查看与修改,密码修改 - 网站首页:主导航栏,广告图,热门酒店,热门景点 - 景区游玩路线:路线列表,按名称模糊搜索,路线详情,关注,取消关注,我的关注路线 - 景区游玩攻略:攻略列表,按名称模糊搜索,攻略详情,发布攻略,收藏攻略 - 在线预订:预订酒店,预订景点,我的预定列表,取消预定 ### 管理员 - 用户管理:用户由前台自行注册而来,管理员可以在后台查询,重置密码 - 酒店管理:酒店信息的增删改查,启用,禁用 - 景点管理:景点信息的增删改查,启用,禁用 - 审核攻略:用户在前台发布的攻略信息,管理员后台查看,并进行审核,审核通过了,其他用户才可以看到 - 路线管理:路线信息的增删改查,启用,禁用 ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>JDK 1.8</b>
内容概要:本文详细介绍了利用Adaline神经网络进行永磁同步电机参数在线辨识的方法。与传统RLS算法相比,Adaline神经网络在处理参数突变时表现出更高的稳定性和更快的响应速度。文中展示了Adaline的核心代码结构,解释了其权重更新机制,并通过具体的应用案例演示了如何将电压、电流等实时采样值作为输入,实现电阻、电感和磁链的高效辨识。此外,还讨论了Adaline在网络结构、计算复杂度以及抗噪性能等方面的优势。 适合人群:从事电机控制系统研究与开发的技术人员,尤其是对永磁同步电机参数辨识感兴趣的工程师。 使用场景及目标:适用于需要实时监测和调整永磁同步电机参数的场合,如工业自动化生产线、电动汽车等领域。主要目标是在不影响设备正常运行的情况下,提高参数辨识的精度和效率,从而优化电机控制系统的性能。 其他说明:文章强调了Adaline神经网络在处理动态系统时的独特优势,尤其是在面对参数突变时的快速响应能力和较低的计算复杂度。同时提醒使用者注意学习率的选择和输入信号的预处理,以确保最佳的辨识效果。
【Robotics_TOOLBOX(机器人工具箱)源代码】scara机器人的gui界面:正运动学
氢汽球素材幼儿园教学课件PPT模板
内容概要:本文档记录了一系列网络安全实验的具体过程与技术细节。实验涵盖了从简单的服务器控制到复杂的SQL注入技巧。首先介绍了通过工具如御剑扫描器和phpmyadmin进行初步的信息收集与数据库入侵,随后深入探讨了如何利用SQL注入漏洞逐步获取数据库名称、表名、列名直至最终获得敏感数据(如用户名和密码)。此外,还涉及了绕过JavaScript验证、利用文件上传漏洞等高级攻击手法。每个实验都详细描述了操作步骤、遇到的问题及解决方案,强调了实际操作中的关键点和注意事项。; 适合人群:对网络安全有兴趣的学习者,尤其是有一定编程基础并希望深入了解Web安全机制的技术人员。; 使用场景及目标:①学习常见的Web漏洞攻击方法和技术,包括SQL注入、文件上传漏洞利用等;②掌握从信息收集到最终获取目标系统控制权的完整攻击链;③提高解决实际问题的能力,培养安全意识和防护能力。; 其他说明:本内容仅用于教育目的,旨在帮助读者理解Web应用安全的重要性以及常见攻击手段的工作原理。所有实验均应在合法授权的测试环境中进行。
内容概要:本文探讨了基于Mamba的医学图像分割技术的发展现状与改进方案。首先指出传统的CNN和Transformer在医学图像分割中存在的局限性,如CNN难以捕捉长距离依赖关系,Transformer计算复杂度过高等问题。接着介绍了Mamba模型的优势,即能够在保持线性计算复杂度的同时有效捕捉长距离依赖关系。文中详细解析了上海交通大学提出的VM-UNet模型,该模型首次将Mamba结构融入UNet,通过引入视觉态空间(VSS)块和非对称编码器-解码器结构,显著提高了医学图像分割的效果。此外,文章还列举了多个基于Mamba的改进方案,如蛇形Mamba、双路架构等,并提供了具体的代码示例和技术细节。 适合人群:从事医学图像处理、计算机视觉及相关领域的研究人员和工程师。 使用场景及目标:适用于需要提高医学图像分割精度和效率的应用场景,旨在帮助研究者理解和应用最新的医学图像分割技术,推动该领域的创新发展。 其他说明:文章不仅讨论了理论和技术层面的内容,还给出了实际操作中的注意事项和优化建议,如数据预处理、损失函数的选择等,有助于读者快速上手并在实践中取得更好的效果。
基于ssm的金港宾馆管理系统:前端 jsp、jquery,后端 springmvc、spring、mybatis;角色分为管理员、用户;集成客服预定、宾馆评价、我的订单等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本功能:登录,注册,退出 - 个人信息:个人信息查看与修改 - 会员中心:会员积分信息列表查询,会员商城购买商品(积分兑换商品) - 客房预订:选择入住时间和退房时间,选择房型,查询推荐房间,在线预定 - 我的订单:所有订单丨 申请取消订单丨 已取消订单丨 待付款订单丨 已支付订单丨 已入住订单丨 已完成订单 ,申请取消 - 宾馆评价:评价列表查询 - 我的评价:待审核评价丨已通过评价丨未通过评价丨我要评价 ### 管理员 - 管理员管理:管理员信息的增删改查,密码修改,超级管理员信息只能查看不允许修改 - 用户管理:用户在前台系统自行注册,管理员可以查看用户信息和修改,对会员进行升级 - 客房管理:客房信息的增删改查,修改房价,条件查询 - 订单管理:订单列表查询,入住、取消、完成操作 - 评价管理:对用户在前台的评价信息进行查询和审核 - 统计分析:根据年份和房间类型查询统计信息
面向服务汽车诊断新架构 SOVD简介
raspberry pico rp2040 mdk例程
2023-04-06-项目笔记-第四百七十四阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.472局变量的作用域_472- 2025-04-21
内容概要:本文档《java基础面试汇总.pdf》涵盖了广泛的Java基础知识,包括但不限于面向对象的特征(如抽象、继承、封装、多态)、作用域规则、基本数据类型与封装类的区别、位运算与逻辑运算的区别、JVM加载类的机制、垃圾回收机制、异常处理机制、集合框架(如List、Set、Map的区别与特性)、线程的概念及其同步方法、I/O流操作、数据库连接与SQL查询、Web开发技术(如Servlet、JSP、Struts)、EJB与Spring框架的基本概念与使用、数据结构与算法(如排序算法、二叉树遍历)、C++语言特性、以及WebLogic服务器配置等。文档以问答形式呈现,针对每个知识点提供简明扼要的答案,适合用于Java开发者的面试准备和技术复习。 适合人群:具备一定编程基础,尤其是Java语言基础的学习者和开发者,包括但不限于初级到中级水平的Java程序员、Web应用开发者、企业级应用开发者等。 使用场景及目标:①作为Java开发者面试前的复习资料,帮助候选人快速回顾和掌握核心知识点;②作为日常工作中遇到具体问题时的参考手册,例如理解类加载机制、异常处理、线程同步等;③作为新手学习Java编程时的入门指南,辅助理解Java的基础概念和高级特性;④作为企业内部培训或高校教学中的辅助教材,用于指导学生或员工掌握Java技术栈的关键要素。 阅读建议:此文档内容丰富且详尽,建议读者根据自身的知识水平和技术需求有针对性地阅读。对于初学者,可以从基础概念开始逐步深入;对于有一定经验的开发者,可以重点关注自己不太熟悉或容易混淆的知识点。此外,由于文档涉及面广,建议配合实际编码练习来加深理解,尤其是对于多线程编程、异常处理、数据库操作等实践性较强的部分。
基于ssm的二手汽车销售管理系统:前端 jsp、jquery,后端 maven、springmvc、spring、mybatis,角色分为经理和员工;集成品牌管理、客户管理、销售管理、库存管理、收购管理等功能于一体的系统。 ## 功能介绍 - 品牌管理:品牌信息的增删改查,热门品牌列表,销量比较好的顺序排行 - 客户管理:客户资料信息的增删改查 - 销售管理:车辆销售登记,列表查询,付款 - 库存管理:车辆库存情况查询,下订单 - 收购管理:收购评估,收购订单查询 - 统计管理:财务状况(柱状图),下载excel表格 - 员工管理:员工信息的增删改查,账号激活操作 - 聊天管理:聊天内容查看,指定人员发送聊天内容 ## 环境 - <b>IntelliJ IDEA 2009.3</b> - <b>Mysql 5.7.26</b> - <b>Tomcat 7.0.73</b> - <b>JDK 1.8</b>
内容概要:本文详细介绍了基于FPGA实现IIC驱动的方法,涵盖IIC驱动的Verilog代码实现、状态机设计、Testbench测试平台搭建以及EEPROM模型的构建。重点讲解了IIC通信协议的关键状态及其时序控制方法,确保通信的稳定性和可靠性。同时提供了详细的代码示例,包括状态机的状态转换、时钟同步逻辑、EEPROM读写模拟等。此外,还讨论了常见的调试技巧和注意事项,如时序对齐、信号完整性、硬件约束配置等。 适合人群:具备一定FPGA开发基础的研发人员和技术爱好者。 使用场景及目标:适用于需要在FPGA平台上实现IIC通信的应用场景,如传感器数据采集、存储器读写等。目标是帮助开发者掌握IIC驱动的设计和调试方法,提高系统的稳定性和性能。 其他说明:文中提供的代码已在实际硬件环境中验证通过,建议初学者从低速开始调试,逐步提升速度。同时,针对不同的硬件环境和需求,可能需要对代码进行适当的调整和优化。
基于ssm的摄影管理系统:前端 jsp、jquery、layui,后端 springmvc、spring、mybatis;角色分为管理员、用户;集成样片欣赏、选片指南、在线预约等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本功能:登录,注册,退出,密码修改 - 网站首页:主导航栏,轮播图,宠物样片,儿童样片,个人样片,婚礼跟拍样片欣赏 - 样片欣赏:分类导航,收藏,在线预约 - 选片指南:指南信息展示,详情介绍 - 个人中心:个人资料查看与修改,我的收藏列表,我的意向列表,我的预约,我的订单 ### 管理员 - 客户管理:客户由前台自行注册而来,管理员也可以进行增删改查操作 - 收藏管理:查看客户收藏的列表信息 - 评论管理:查看客户评论信息,删除操作 - 类别管理:类别信息的增删改查 - 样片管理:样片信息的增删改查,图片上传,变更为新增,变更为可出售 - 图片管理:图片信息的增删改查 - 轮播图管理:轮播图信息的增删改查,对应前台轮播图展示 - 意向样片管理:样片信息的列表查询 - 预约管理:客户预约信息的查看,搜索,删除操作 - 订单管理:订单信息的查看与删除 - 统计分析:样片收藏率分析,订单率分析(柱状图展示) ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>Tomcat 7.0.73</b> - <b>JDK 1.8</b>
读卡器软件支持标准工业半导体 Secs-I(Rs232)和HSMS(网口) 、 Modbus TCP /RTU协议 同时还支持欧姆龙640的 1:1 和 1:N 协议;