java中double变量保留小数问题
(转载自玄影池扁舟)
做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结:
java中double类型变量保留小数问题大体分两种情况:
(一):小数点后面位数过长,四舍五入保留指定位数:
可以用以下代码实现:
public class TestDemo {
public static void main(String[] args) {
double a=15.32743859;
double b=Math.round(a*10000)/10000.0000;//保留四位小数
System.out.println(b);
}
}
想保留n位小数,就Math.round(a*10的n次方)/10的n次方.n个0。
(二):如果小数点后末位为0,myeclipse中不予显示,如
double a=15.80;
System.out.print(a);
则在控制台中输出的结果是15.8。
而我们有时候希望把百分位的0也显示出来,比如说显示商品价格,一般是显示两位小数,如果商品价格是15.8,也显示为15.80,如果商品价格是15,也显示为15.00,这种情况,用(一)中的方法便无法实现了,那应该如何实现呢?
请看下面代码:
import java.text.DecimalFormat;
public class TestDemo {
public static void main(String[] args) {
DecimalFormat df =new DecimalFormat("#####0.00");
double a=15;
System.out.println(df.format(a));
}
}
这样,即使在我们的double类型变量是15,显示出来的也是15.00。当然,我们希望显示多少位就在"#####0.00"的点后面去控制0的个数便可以。如果是"#####0"的话,那我们的double变量无论是15.0或是15.00都能显示成15,而如果我们的double变量是15.60,则显示为16,即这种方法也可以实现四舍五入。它包含了(一)的功能,所以我们遇到两种情况都可以选择这种方法。
后记:我在做u1项目超市收银管理系统的时候便遇到了这个问题。在后期的测试完善阶段,我发现出现项目中商品价格的地方一般都显示为一位小数,而实际生活中一般是保留两位小数。于是乎苦心修改:不断调整xml中的数值、给double变量赋初值0.00、用Math.round()......等等等等,不胜枚举,都没有达到预期的效果,弄得自己丈二和尚摸不着头脑。老师的“进行特殊处理”的关键提示指引着我继续寻找问题的答案,花了大半天的时间才解决。说起来本周都成了"bug"周了,各种不顺,各种调试,真是举步维艰。然而尽管如此,我还是相信:不要怕错误,不要怕问题,要在痛苦解决问题的过程中增加经验值。柳暗花明也许就在山穷水尽之后。
java中double变量保留小数问题的更多相关文章
- Java中double变量精确到小数点后几(2)位
import java.math.BigDecimal; import java.text.NumberFormat; public class Java中double类型的数据精确到小数点后两位 { ...
- Java中double类型的数据精确到小数点后两位
Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); d ...
- Java中的变量与变量的作用域
关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标 ...
- java中的变量和数据类型
变量和javascript的变量含义一样 在Java中,变量分为两种:基本类型的变量和引用类型的变量.(javascript中同样是这样的) 基本数据类型 基本数据类型是CPU可以直接进行运算的类型. ...
- java中打印变量地址
在java中打印变量的地址 这个代码是在startoverflow上看到的,跟大家分享一下. import sun.misc.Unsafe; import java.lang.reflect.Fiel ...
- java中static变量和方法的总结
转自:http://blog.csdn.net/haobo920/article/details/5921621 java中static变量和方法的总结 java中一切皆是对象 一个类中对象的定义一般 ...
- Java中静态变量与实例变量
知识回顾 上一篇总结了java中成员变量和局部变量的区别,这一篇将总结静态变量和实例变量的一些特性和区别. 示例代码 package Variable; public class VariableDe ...
- Java中关于变量的几种情况
Java中关于变量的几种情况 1.继承时变量的引用关系 class Animals { int age = 10; void enjoy() { System.out.println("An ...
- Java中静态变量的声明位置
Java中静态变量只能是成员变量,局部方法中的局部变量除final外不能有任何其他修饰符,例如: public class Test { static String x = "1" ...
随机推荐
- 《Pro Git》阅读随想
之前做版本管理,我使用最多的是SVN,而且也只是在用一些最常用的操作.最近公司里很多项目都开始上Git,借这个机会,我计划好好学习一下Git的操作和原理,以及蕴含在其中的设计思想.同事推荐了一本< ...
- Java入门记(一):折腾HelloWorld
HelloWorld,学习每门语言的第一步.有人戏称,这些年的编程生涯就是学习各种语言的HelloWorld,不知是自谦还是自嘲.目前所在的公司使用Java作为主要开发语言,我进行语言转换也大半年了, ...
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
从Delphi 2009开始,DataSnap技术发生了很大的变化,并在Delphi 2010和Delphi XE的后续版本中得到了持续的改进.Delphi 2009之前的DataSnap,虽然也实现 ...
- SQL笔记1:SELECT及SELECT高级应用
T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:G ...
- gulp 使用介绍
gulp 使用介绍 gulp gulp 插件 gulp的配置文件gulpfile.js gulp 语法 gulp 实例 gulp的缺点 gulp gulp是基于Node.js的前端自动化构建工具,主要 ...
- Tomcat安装及配置教程
工具/原料 Tomcat7.0 eclipse 百度经验:jingyan.baidu.com java环境的配置 1 java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意 ...
- Firefly安装ROS及ssh远程登录配置
一.在Linux firefly 3.10.0 上安装ROS-indigo 快捷键 CTRL + ALT + T 打开终端并安装ROS-indigo sudo sh -c 'echo "d ...
- uitableview性能优化(转)
这个感觉写的很好 收藏一下 以备后用 转自 http://www.cnblogs.com/pengyingh/articles/2354714.html 在iOS应用中,UITableView应该是使 ...
- jquery链接多个jquery方法
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js" ...
- windows下调用发送邮件程序项*发送邮件
#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){ ShellExecute(NULL, _T("open&quo ...