赛迪网 > IT技术 Java > Java读书频道-中
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java2参考大全:第14章 java.lang 研究 (2)

发布时间:2006.05.17 01:39     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

14.1.2 Double和Float
双精度(Double)和浮点(Float)分别是对类型double和类型float的浮点值的包装器。浮点(Float)构造函数如下所示:
Float(double num)
Float(float num)
Float(String str) 引发NumberFormatException异常
正如你所看到的,浮点(Float)对象可以由类型float或类型double的值创建。它们也能由浮点数的字符串表达式创建。
双精度(Double)构造函数如下:
Double(double num)
Double(String str) 引发NumberFormatException异常
双精度(Double)对象可以被双精度(double)值或包含了浮点值的字符串创建。由浮点(Float)定义的方法在表14-1中列出。由双精度(Double)定义的方法在表14-2中列出。浮点(Float)和双精度(Double)都定义了下面的常数:
MAX_VALUE 最大正值
MIN_VALUE 最小正值
NaN 非数字
POSITIVE_INFINITY 正无穷
NEGATIVE_INFINITY 负无穷
TYPE 浮点(float)或双精度(double)的类(Class)对象
表14-1 由Float 定义的方法
方法 描述
byte byteValue() 返回调用对象的值(字节型)
int compareTo(Float f) 将调用对象的数值与f中的数值进行比较,如果两者相等,返回0。如果调用对象的值小于f的值,则返回负值。如果调用对象的值大于f的值,则返回正值(在Java 2中新增加的)int compareTo(object obj) 当obj是类Float中的对象时,该方法与compareTo(Float)的功能相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)
double doubleValue() 返回调用对象的值(双精度型)
boolean equals(Object FloatObj) 如果float调用对象与FloatObj相等,则返回true。否则返回false
static int float ToIntBits(float num) 返回与num相应的与IEEE兼容的单精度位模式Float floatValue() 返回调用对象的值(浮点型)
int hashCode() 返回调用对象的散列值
static float intBitsToFloat(int num) 返回由num指定的,与IEEE兼容的单精度位模式的等价浮点(float)值
int intValue() 返回整型(int)形式的调用对象值
boolean isInfinite() 如果调用对象包含有无穷大值,则返回true。否则返回false
static boolean isInfinite(float num) 如果num指定了一个无穷大值,则返回true。否则返回false
boolean isNaN() 如果调用对象中包含了非数字值,则返回true。否则返回false
static boolean isNaN(float num) 如果num指定了一个非数字值,则返回true。否则返回false
long longValue() 返回调用对象的值(长整型)
static float parseFloat(String str)
throws NumberFormatException
以10为基数,返回包含在由str指定的字符串中的数字的等价浮点值(在Java 2中新增加的)
short shortValue() 返回调用对象值(短整型)
String toString() 返回调用对象的等价字符串形式
static String to String(float num) 返回由num指定的值的等价字符串
static Float valueOf(String str)
throws NumberForamtException
返回包含了由str中的字符串指定的值的float对象
表14-2 由Double 定义的方法
方法 描述
byte byteValue() 返回调用对象的值(字节型)
int compareTo(Double d) 将调用对象的值与d的数值进行比较。如果这两个值相等,
则返回0。如果调用对象的数值小于d的数值,则返回负值。
如果调用对象的数值大于d的数值,则返回正值(在Java 2中新增加的)Int compareTo(Object obj) 如果obj属于类Double,其操作与compareTo(Double)相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)
static long doubleToLongBits(double num) 返回与num相应的与IEEE兼容的双精度位模式
double doubleValue() 返回调用对象的值(双精度)
boolean equals(Object DoubleObj) 如果double调用对象与DoubleObj相等,则返回true。否则,返回false
float floatValue() 返回调用对象的值(浮点型)
int hashcode() 返回调用对象的散列码
int intValue() 返回调用对象的值(整型)
boolean isInfinite() 如果调用对象包含了一个无穷大值,则返回true。否则,返回false
static boolean isInfinite(double num) 如果num指定了一个无穷大值,则返回true。否则,返回false
boolean is NaN() 如果调用对象包含了一个非数字值,则返回true。否则,返回false
static boolean isNaN(double num) 如果num指定了一个非数字值,则返回true。否则,返回false
static double longBitsToDouble(long num) 返回由num指定的,与IEEE兼容的双精度位模式的双精度(double)等价值
long longValue() 返回调用对象的值(长整型)
static double parseDouble(String str)
throws NumberFormatException
以10为基数,返回包含在由str指定的字符串中的数字的等价双精度(double)形式(在Java 2中新增加的)
short shortValue() 返回调用对象的值(短整型)
String toString() 返回调用对象的等价字符串形式
Static String toString(double num) 返回由num指定的值的等价字符串形式
Static Double valueOf(String str)
throws NumberFormatException
返回包含了由str中的字符串指定的值的double对象
在下面的例子中创建两个double对象——一个通过使用双精度(double)值实现,另一
个通过传递一个可以被解析为双精度(double)的字符串来实现。
class DoubleDemo {
public static void main(String args[]) {
Double d1 = new Double(3.14159);
Double d2 = new Double("314159E-5");
System.out.println(d1 + " = " + d2 + " -> " + d1.equals(d2));
}
}
正如从下面的输出中可以看到的那样,如同通过equals( )方法返回true,两种构造函数创建相同的双精度(double)实例。
3.14159 = 3.14159 –> true
理解isInfinite( )和isNaN( )
浮点(Float)和双精度(Double)提供了isInfinite( )和isNaN( )方法,这些方法会有助于操作两个特殊的双精度(double)和浮点(float)值,这些方法检验两个由IEEE浮点规范定义的独特的值:无穷和NaN(非具体数字)。当被检验的值为无穷大或无穷小值时,isInfinite( )方法返回true。当被检验值为非数字时,isNaN( )方法返回true。在下面的例子中构造了两个Double对象;一个是无穷,另一个是非数字:
// Demonstrate isInfinite() and isNaN()
class InfNaN {
public static void main(String args[]) {
Double d1 = new Double(1/0.);
Double d2 = new Double(0/0.);
System.out.println(d1 + ": " + d1.isInfinite() + ", " + d1.isNaN());
System.out.println(d2 + ": " + d2.isInfinite() + ", " + d2.isNaN());
}
}
程序运行产生如下的输出:
Infinity: true, false
NaN: false, true

<<上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Java2 参考大全:第13 章 字符串处理 (05-10)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管