一. 关于浮点运算,需要说明的几点: 1. 在java中,进行浮点运算并不会处理例外情况,所以,即使除数为0,也不会有例外被抛出; 2. 当运算结果是溢出(Infinity)时,结果为Infinity;下溢时,则结果为0:若结果是数学上是未定义的,则结果为NaN(not a number); 3. 所有和NaN有关的运算其结果总是NaN; 4. 由于NaN是无序的,所以,和NaN进行数值比较时,其结果总是false. 二. 例子: public class floattest { p
problom : 'f1' value hava been changed when output. reason : the binary repersentation of 2.2f is : 00110011001100110011... (is an infinite recurring decimal) but computer only store 24 byte , so discard the remaining number , lead to the value has b
Java之间的数值转换如图所示,实心箭头代表无数据丢失,虚线箭头代表可能丢失 例如:123456789是一个大的整数,包含的位数比float类型能够表达的位数多,但这个数转换为float类型时,将会得到同样大小的结果,但却失去了一定的精度. int n = 123456789; float f =n; //f is 1.23456792E8 当转换前后两个数进行二元操作时(例如n+f,n为整数,f为浮点数),则先将两个操作数转换为同一个类型,再进行计算. 转换规则: --如果两个操作数中有一个是