`

java价格处理的一个问题

    博客分类:
  • java
 
阅读更多

 

  我们经常会处理一些价格,比如从运营上传的文件中将某个字段从字符串转为double类型,那么此时处理价格需要特别注意,比如4.6,我们通过Double.valueOf(value)来转换,然后系统是用分为单位来存储价格信息,那么我们会将(long)(Double.valueOf(value)*100)来存储,此时4.6存储到系统就变成459了,然后再转换回来就出错了。

 

public class FloatTest {
	
	public static void main(String[] args) {
		for(int i = 0; i < 10; i++){
			String value="4." + i;
			System.out.println(Double.valueOf(value) * 100);
//			System.out.println(Double.valueOf(Double.doubleToLongBits(Double.valueOf(value))) * 100);
			System.out.println((long)(Double.valueOf(value) * 100));
			System.out.println(Math.round(Double.valueOf(value) * 100));	
		}
	}

}

 

400.0
400
400
409.99999999999994
409
410
420.0
420
420
430.0
430
430
440.00000000000006
440
440
450.0
450
450
459.99999999999994
459
460
470.0
470
470
480.0
480
480
490.00000000000006
490
490

 4.1和4.6就出错了,正确方式应该用Math.round来四舍五入。

2
2
分享到:
评论
5 楼 zhwj184 2013-03-27  
看到各位贡献的方法,学习了,4.1和4.6有空得了解下浮点数内部表示方法怎么就变成那样了。
4 楼 wwwcomy 2013-03-27  
最近正在找这方面资料。。 万恶的浮点数。。
3 楼 aclyyx 2013-03-27  
价格处理的话,不用四舍五入,直接在结果上加”0.001“再取整就好了
2 楼 冷静 2013-03-27  
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
BigDecimal value = new BigDecimal("4." + i);
System.out.println(value.setScale(2, BigDecimal.ROUND_HALF_UP));
}
}

结果:
4.00
4.10
4.20
4.30
4.40
4.50
4.60
4.70
4.80
4.90
1 楼 freezingsky 2013-03-26  
不是有BigDemial吗?

相关推荐

    Java价格处理类.工具类

    价格处理工具类,去掉结尾多余的数,自动分隔!

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    算法设计与分析 java(包含几种经典算法)

    试设计一个解决此问题的算法,并分析算法的正确性与计算复杂度。 4.最小重量机器设计问题。设某一机器由n个部件组成,每一种部件可以从m个不同的供应商处购得。设wij是从供应商j处购得的部件i的重量,cij是相应的...

    java冒泡排序(可处理各种异常,选择升序还是降序)

    最近自己无聊编了一个java的冒泡排序,欢迎查看

    “Java神功!餐厅系统轻松打造!”

    例如,餐厅可以通过Java编写一个简单的程序来管理菜单的内容和价格,使其更加直观和易于操作。此外,餐厅还可以使用Java来实现在线订餐系统,让客户可以通过互联网订购菜品。 “Java是一门跨平台的编程语言,可以在...

    基于JAVA的学生成绩管理系统的设计与实现.doc

    系统的需求分析 系统的可行性分析和需求分析应在弄清用户需求的基础上,提出可供选择的方案,进 行调查研究、信息流程分析和数据收集,对开发中出现的各种问题进行估计,便于在开 发中能正确处理。 1. 可行性分析 ...

    基于JAVA设计的现实版的“开心农场”软件源码+说明文档.zip

    基于JAVA设计的现实版的“开心农场”软件源码+说明文档 通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,在农场里用户通过鼠标操作实现种子购买、作物...

    毕业设计-基于Java实现工厂运营管理系统设计

    Swing是Java的一个图形用户界面(GUI)工具包,它包含了众多可重用的组件,如按钮、文本框、滑块等,这些组件可以轻松地创建复杂的用户界面。AWT则是Java最早的GUI工具包,它提供了一组基础的组件,如标签、按钮、...

    Spire.Office_3.6.4.zip

    作为一个独立的办公文档组件,Spire.Office 的运行环境无需安装 Microsoft Office、Adobe Acrobat、以及其他第三方软件。基于安全性、稳定性、可扩展性、效率及价格方面的考虑,Spire.Office 已经成为微软办公套件最...

    java语言图书馆管理系统

    使用java语言进行开发的图书馆管理系统具体需求 1、图书信息采集 规格说明: 图书的全部信息(包括:分类号、条形码、书名、作者、内容摘要、价格和购书日期等)采集。 输入: 图书的全部信息。 处理: 通过图书...

    java大数据-教程.docx

    然后收集房子距离市中心的距离(X1),面积(X2),收集足够多的房子的数据,就可以建立一个房价和距离、面积的方程式(例如Y=aX1+bX2),这样给出一个新的距离和面积数据,就可以预测这个房子的价格。 java大数据-...

    Java实现秒杀系统实现

    下面是一个简单的Java秒杀系统的实现概念: 数据库设计:需要设计商品表和订单表,商品表包括商品ID、库存数量等字段,订单表包括订单ID、用户ID、商品ID等字段。保证数据库事务的一致性和并发控制非常重要。 商品...

    java毕设项目之基于java+springboot微信微服务架构的汽车租赁系统的设计与实现_zaxzu.zip

    该资源是一个基于Java和Spring Boot的微信微服务架构的汽车租赁系统的设计与实现。该项目采用了当下流行的技术栈,包括Java、Spring Boot、微服务架构等,为用户提供了一个高效、便捷的汽车租赁平台。 在这个项目中...

    java毕业设计之基于Java web的药店管理系统(包含完整源码+万字报告文档+部署说明+ppt)

    源码均经过严格测试,资料包括 (完整源码+万字报告文档+部署说明+ppt),有任何使用问题欢迎随时与博主沟通,第一时间进行解答! Java 毕业设计,Java 课程设计,基于 SpringBoot+Vue 开发的,含有代码注释。毕业设计...

    基于Java的酒店管理系统设计(全文).docx

    一、系统介绍 基于Jv的酒店治理系统是一个采纳jv+mysql+web的模式订制的小型电子信息治理平台。系统功能完备以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库治理系统来存储信息数据,实现了对...

    java设计实现的宾馆管理系统

    本系统正是在充分对酒店日常的管理流程进行分析后,运用java这个很强大的工具制作出人性化、方便快捷、界面友好的酒店前台管理系统。 1.2开发环境与工具和功能模块的初步设计 本系统设计是在Eclipse3.2平台上使用jav

    Asprise-OCR-Java示例代码

    光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料...

    基于jsp的java商城系统源码

    这个系统使用JSP(Java Server Pages)来处理动态内容,使用JSTL(JSP Standard Tag Library)来管理模板和标签,使用JavaBeans来处理业务逻辑和数据访问,使用Apache Tomcat作为服务器。 商城系统有多个模块,包括...

    基于java房产中介管理系统设计方案.doc

    其作为一个管理房屋信息的机 构,对信息的管理应该准确,无误。因此利用所学过的软件工程设计思想,数据库等知 识设计一个房屋中介管理的软件对于提高中介公司的工作效率变得尤为重要。 系统的需求主要包括房屋信息...

    java管理员学生图书系统

    Java管理员学生图书系统是一个基于Java语言开发的图书管理系统。该系统旨在提供一个方便、高效和可靠的解决方案,用于学校或图书馆的图书管理工作。 Java管理员学生图书系统的主要功能包括以下几个方面: 用户登录...

Global site tag (gtag.js) - Google Analytics