`

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爬取各大平台价格

    Apache HttpClient是一个流行的Java库,用于处理HTTP请求和响应。在爬虫项目中,HttpClient负责向服务器发送GET或POST请求,获取网页内容。它可以设置各种请求头,如User-Agent,以模仿不同的浏览器,避免被网站的...

    Java源码猜价格游戏.rar

    标题中的"Java源码猜价格游戏.rar"表明这是一个关于Java编程的项目,具体是一个猜价格的游戏。这个项目可能包含了实现这个游戏逻辑的所有Java源代码文件,是Java程序设计的经典实例之一,旨在帮助学习者理解Java编程...

    Dsp_Java_DSP微处理器系统

    这种系统将Java技术与DSP技术融合,形成一个能够高效处理多媒体信息、具备强大联网能力、适用于嵌入式应用且价格合理的解决方案。Java-DSP微处理器系统的核心是一个融合了Java虚拟机和DSP处理单元的微处理器,它们...

    Java随机文件存储杂货店问题

    在“Java随机文件存储杂货店问题”中,我们面临的是一个典型的文件系统应用,它需要管理和操作一个商品库存的数据。下面将详细阐述这个场景中涉及的Java编程知识点。 首先,我们需要创建一个数据结构来表示商品。每...

    网上商品信息处理 java 程序

    网上商品信息处理Java程序是...此外,还可以学习到如何构建一个基本的网上购物系统,包括用户交互、数据持久化和业务逻辑处理。这样的实践有助于提升Java Web开发技能,特别是在处理用户输入、数据验证和异常处理方面。

    大数据经济背景下Java平台及应用Java技术的安全问题.pdf

    在大数据经济背景下,Java平台及应用Java技术的安全问题已经成为一个非常重要的研究议题。随着信息技术和网络时代的快速发展,国内的各个领域都经历了深刻的转型与升级。技术进步不仅为社会发展带来巨大变化,而且...

    使用java,jdbc连接数据库和Java swing图形化界面完成一个商品管理系统.zip

    在这个名为“使用java,jdbc连接数据库和Java swing图形化界面完成一个商品管理系统.zip”的压缩包中,包含了使用Java编程语言,结合JDBC(Java Database Connectivity)接口与MySQL数据库,以及利用Java Swing构建...

    基于java爬取股票数据的一个项目.zip

    每个线程负责爬取一个或多个股票的数据,这样可以并行处理多个请求,减少整体的爬取时间。 7. **数据存储**:抓取到的股票数据需要存储起来,可能是本地文件、数据库(如MySQL、MongoDB)或者云存储。项目可能使用...

    遗传规划自适应建模的JAVA实现及在股票价格预测中的应用.pdf

    遗传规划是一种启发式搜索算法,属于进化算法的一种,主要用来...通过本研究可以发现,遗传规划不仅能够提高预测精度,还能够提供一种直观的理解股票价格变化的方式,这对投资者和市场分析师来说都是一个有益的工具。

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

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

    使用jsp和java bean来构建一个网上书店

    总之,使用JSP和Java Bean构建网上书店是一个典型的企业级应用开发案例,它涉及到前端展示、后端逻辑处理以及数据库操作等多个环节。通过熟练掌握这两项技术,开发者能够创建出功能完善的、用户友好的网上书店系统。

    股票价格查询 java swing 小程序

    【标题】"股票价格查询 java swing 小程序"是一个基于Java Swing开发的桌面应用程序,它实现了用户通过输入股票代码查询股票价格的功能。该程序利用了新浪提供的股票接口,能够获取实时或历史的股票数据,并在用户...

    java-汽车销售

    在这个项目中,开发者利用Java技术构建了一个汽车销售平台,可能包括了用户浏览、查询、购买等功能。以下是关于这个主题的详细知识点: 1. **Java基础**:Java是一种广泛使用的面向对象的编程语言,具有跨平台、...

    Java实现 自动贩卖/售货机 系统

    在本项目中,我们探索的是一个使用Java编程语言实现的自动贩卖/售货机系统。这个系统是针对大学期末课设或新手实践而设计的,旨在帮助学生掌握Java编程技能并提供一个实际应用的场景。下面我们将深入探讨该系统的...

    java简单的购物系统

    【标题】:“java简单的购物系统”是一个基于Java编程语言实现的简易购物应用程序。这个系统能够展示商品信息,允许用户选择购买的数量,并最终生成一个购物清单。它的核心功能涵盖了基本的电商流程,为初学者提供了...

    java网上购物结算模拟(介绍了软件的应用)

    - 设计目标:实现一个简单易用的程序,用于商品结算,记录商品的名称、单价和数量,快速计算总价。 - 功能模块:包括商品添加、删除、查找、清空购物车、付款、打印清单等功能,以满足基本的购物结算需求。 - ...

    Java调用小票打印机打印小票

    7. **文件处理**:在“MiniPrinter”这个文件名中,可能是指一个小型的打印机类或者用于处理打印任务的工具类。这个类可能会包含打开文件、读取内容、转换成打印机可识别的格式,以及发送到打印机等方法。 8. **...

    一个java写的超市源码

    在本资源中,我们拥有一个基于Java编程语言编写的超市管理系统源码。这个系统可能包含了管理商品库存、处理顾客订单、跟踪销售记录以及财务管理等多种功能,是学习和理解企业级应用开发的一个很好的实例。 首先,从...

    java实现购物系统

    在本项目中,"java实现购物系统"是一个基于Java编程语言构建的电子商务应用程序,它涵盖了图书购买的前端界面和后端处理。这个系统利用MySQL数据库来存储和管理商品信息、用户数据以及订单详情,旨在提供一个完整的...

Global site tag (gtag.js) - Google Analytics