java中double型小数位数问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中double型小数位数问题相关的知识,希望对你有一定的参考价值。

public class EX1_3
public static void main(String[] args)
double x = 2.3;
x += 1.2 * 3 + x++;
System.out.println(x);
x += x + 4 * 2 + x--;
System.out.println(x);


运行结果为:
8.2
32.5999999999994
同是double型,两条式子也差不多,为什么第一个输出的数只有一位小数,第二个就有很多位呢?

其实第一条运算的结果也是不精确的,为什么会看上去精确?是因为System.out.println()函数对浮点数的打印位数有限制,就如楼上说的,后面的0太多,所以被省略了。

你可以使用System.out.printf("%1.10f", x);这样就可以看到后面被省略的部分了。

不知道这样回答清楚不清楚?
参考技术A 第一个是8.200000000000000,后面的零省略了。下一个由于不是整位所以全部显示出来了!

java基本数据类型

基本数据类型:

整数型:

long------2的64次方

int-------2的32次方

short-----2的16次方

byte------2的8次方

浮点型:

float-----小数位数最多7位, 保持总位数是8位

double----小数位数最多15位, 保持总位数是16位

逻辑型:

boolean---不是true就是false

字符型:

char------一个字符(在ASCII码中的位置)

 

注释

 

变量, 常量, 赋值, 运算符, 表达式

 

变量: 表示一个值的抽象概念

 

赋值运算符 =

 

赋值

变量的类型 变量名 = 变量值;

 

变量的赋值:--->  "="

数据类型 变量名 赋值运算符 变量值

String name = "我是好人";

 

数字, boolean型可以直接写

字符(char型)只能用单引号

String, 字符串: 多个char型字符串在一起---用双引号

 

二元运算符: +(加号)  -(减号)  *(乘号)  /(除号)  %(取余数)

加号和减号也可以用于表示正负数

+=  -=  *=  /=

 

一元运算符: ++  --

 

关系运算符:

==  >  <  >=  <=  !=

逻辑运算符:

&  &&  |  ||  !  ^(异或运算: 转成二进制(位数短的用0去补), 相同为0, 不同为1)

三元表达式:

boolean?值1:值2;

 

常量:

修饰符: final

以上是关于java中double型小数位数问题的主要内容,如果未能解决你的问题,请参考以下文章

double类型,小数点后的位数

double 小数点后允许的最大位数

c语言如何控制小数位数?

mysql 小数详情

java如何获取一个double的小数位数

c语言如何控制小数位数