java float和double 区别
来源:互联网 发布:中国国家培训网 知乎 编辑:程序博客网 时间:2024/06/05 19:18
来自百度知道:http://zhidao.baidu.com/link?url=O5UvP3PxCibnuhf6ovHleQsxTX-3ErdHuzXCkoxUvL_EomeF1y3nMTjb3ilpgUUiuj7c6aBRibzDv9UNnvZmVa
对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)
另外的区别:
public class FloatDouble {public static void main(String[] args) {float f = 1.0f;//有小数点的话,必须要加f或者Ffloat f2 = 1.0F;float f3 = 1;double d = 1.0;double d2 = 1.0f;double d3 = 1;double d4 = 1.0d;System.out.println(new Float(1.0).equals(new Float(1.0)));System.out.println(new Double(1.0).equals(new Double(1.0)));System.out.println(f == d);System.out.println(new Float(f).equals(new Double(d)));}}
输出:
truetruetruefalse
最后等于false,为什么呢?看代码。
对于Float:
public boolean equals(Object obj) {return (obj instanceof Float) && (floatToIntBits(((Float)obj).value) == floatToIntBits(value)); }
对于Double:
public boolean equals(Object obj) {return (obj instanceof Double) && (doubleToLongBits(((Double)obj).value) == doubleToLongBits(value)); }
所以,要类型相同,才有可能相等,而不仅仅是比较两个数字的值。
对于其他包装类型,也一样。
Short
public boolean equals(Object obj) {if (obj instanceof Short) { return value == ((Short)obj).shortValue();}return false; }
public boolean equals(Object obj) {if (obj instanceof Integer) { return value == ((Integer)obj).intValue();}return false; }
public boolean equals(Object obj) {if (obj instanceof Long) { return value == ((Long)obj).longValue();}return false; }
public boolean equals(Object obj) {if (obj instanceof Byte) { return value == ((Byte)obj).byteValue();}return false; }
public boolean equals(Object obj) {if (obj instanceof Boolean) { return value == ((Boolean)obj).booleanValue();} return false; }
0 0
- java float和double 区别
- java的float和double的区别
- Java中double和float的区别
- java中float和double的区别
- java中double和float区别
- java中float 和double的区别
- java double float 区别
- double 和float区别
- double和float的区别
- double和float的区别
- double和float的区别
- float 和 double 的区别
- float和double的区别
- java中float和double到底有什么区别?
- java中char和string float与double区别
- Java的float和double
- java中的float和double
- Java中的Float和double
- 【介绍两款SSH爆破工具 hydra+medusa】
- URI Scheme
- error: undefined reference to 'property_set
- cvConvertScale,cvConvert , cvScale
- 软件测试从零开始之一:认识软件测试
- java float和double 区别
- Android-UI学习之Spinners的用法
- android Info
- 关于平衡二叉树
- codec engine代码阅读七---codecs中的xDM,XDAIS函数解析
- C#模拟鼠标键盘控制其他窗口
- 重构(Refactor)的意义
- acm 1125 最短路径(floyd)
- big endian and little endian