Java显示特定浮点数时的怪问题
浮点数不能进行精确运算,这个问题想必大家都知道,我今天也不是讲这个问题,而是讲一个怪问题。
首先,请大家先看下以下几条语句的输出:
Double d1 = 0.005;
Double d2 = Double.parseDouble("0.005");
System.out.println(d1);
System.out.println(d1.toString());
System.out.println(d2);
输出会是什么呢?不就是0.005吗?
如果没遇到过,那大家是肯定想不到的了。输出是:
0.0050
0.0050
0.0050
为什么后面多了个0呢?我是无从知道原因了,经过多次测试,发现只有0.001,0.002直到0.009这 9 个数如果直接输出,是一定会多个0的,其他的浮点数未发现有这样的问题(若小数位太多,会以科学计数法方式显示,但不会后面多个0)。
最近做的一个项目就遇到了上述问题,虽然每次都得到了满足小数有效位数的要求,但就因为上述怪问题,害得我把每个结果都要用DecimalFomat进行格式化,由于数据多,而每个数据又由于所属对象的等级不同而有不同的有效位数要求,因此这样一来工作量一下子多了不少!
相关文档:
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
Java数据类型
Hibernate数据类型
标准SQL数据类型
byte
byte
TINYINT
short
short
SMALLINT
int
integer
INGEGER
long
long
BIGINT
float
float
FLOAT
double
double
DOUBLE
java.math.BigDecimal
big_decimal
NUMERIC
char, java.lang.Character
character
CHAR(1)
boolean, java.lang.Boole ......
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
boolean -->Boolean
char --->Character
byte -->Byte
short -->Short
int -->Integer
long -->Long
float -- ......
我写了一个程序用来接收客户端发过来的数据,但是如果多个客户端一起像这里发送数据时,报StandardWrapperValve[xmlreceiver]: Servlet.service() for servlet xmlreceiver threw exception java.lang.OutOfMemoryError,这时需要扩大tomcat的java虚拟机内存,如何更改呢?
在 Windows菜单中找到Tomcat安装菜单中的Monitor ......