Java语言float类型

示例

Afloat是单精度32位IEEE 754浮点数。默认情况下,小数被解释为双精度。要创建float,只需f在小数文字后附加。

double doubleExample = 0.5;      // 数字后没有'f'=两倍
float floatExample = 0.5f;       // 在数字=浮点后加'f'

float myFloat = 92.7f;           // 这是一个漂浮物...
float positiveFloat = 89.3f;     // 可能是积极的,
float negativeFloat = -89.3f;    // 或否定
float integerFloat = 43.0f;      // 它可以是整数(不是整数)
float underZeroFloat = 0.0549f;  // 它可以是小于0的分数

浮点数处理五个常见的算术运算:加法,减法,乘法,除法和模数。

注意:由于浮点错误,以下内容可能会略有不同。为了清晰和易读起见,对一些结果进行了四舍五入(即,添加示例的印刷结果实际上是34.600002)。

// 加成
float result = 37.2f + -2.6f;  // 结果:34.6

// 减法
float result = 45.1f - 10.3f;    // 结果:34.8

// 乘法
float result = 26.3f * 1.7f;   // 结果:44.71

// 师
float result = 37.1f / 4.8f;   // 结果:7.729166

// 模数
float result = 37.1f % 4.8f;   // 结果:3.4999971

由于浮点数的存储方式(即二进制形式),许多数字没有确切的表示形式。

float notExact = 3.1415926f;
System.out.println(notExact); // 3.1415925

尽管float对于大多数应用程序来说使用是很好的选择,但float也不double应将其用于存储十进制数字(如货币金额)或需要更高精度的数字的精确表示形式。而是BigDecimal应使用该类。

的默认值float是0.0F

float defaultFloat;    // defaultFloat == 0.0f

Afloat精确到大约1千万分之一的误差。

注: Float.POSITIVE_INFINITY,Float.NEGATIVE_INFINITY,Float.NaN都float值。NaN代表无法确定的运算结果,例如除以2个无穷大值。此外0f和-0f有所不同,但==得出的结果是:

float f1 = 0f;
float f2 = -0f;
System.out.println(f1 == f2); // 真正
System.out.println(1f / f1); // 无限
System.out.println(1f / f2); // -无限
System.out.println(Float.POSITIVE_INFINITY / Float.POSITIVE_INFINITY); // N