java中 double 类型只是一个简单类型,是不能其输出
位数及
精度是固定的\x0d\x0a可以利用其它方法进行位数输出,如:\x0d\x0a \x0d\x0a public static void main(String[] args) {\x0d\x0a // 1. 使用 String.format() 方法\x0d\x0a double data = 11.8982389283293\x0d\x0a System.out.println(String.format("%.2f", data))\x0d\x0a \x0d\x0a // 2. 使用 printf 输出\x0d\x0a System.out.printf("%.2f", data)\x0d\x0a\x0d\x0a// 3. 使用 DecimalFormat 对象格式化\x0d\x0a DecimalFormat format = new DecimalFormat("#.00")\x0d\x0a System.out.println(format.format(data))\x0d\x0a }float占用4个字节,也就是32个比特。
double占用8个字节,也就是64个比特lei。
float和double的范围是由指数的位数来决定的。
float的指数范围为-127--128,double的范围是-1023-1024。
负指数决定了绝对值最小的非零数,正指数决定了绝对值最大的数。也即决定了范围。
也即float的范围为-2^128-2^128,double的范围是-2^1024-2^1024。
float和double的精度是由尾数位决定的。浮点数在内存中是按照科学计数法来存储的,其整数部分始终是一个隐藏着的1。由于他是不变的,因此对精度不会造成影响的。
float精度范围是:2^23一共7位,因此最多能表示7位,但是能保证的是6位。
double的精度范围是2^52一共16位,同理最多能表示16位,但是能保证的是15位。
double的精度是C语言规定的,我们没有办法更改,但是我们可以只输出4位小数的。
printf("%.4lf", double1) //X.Xlf,小数点前面的X是整数的位数,小数点后面的X是输出的小数位数
评论列表(0条)