相关疑难解决方法(0)

将小数位移到一个double中

所以我有一个等于1234的双重设置,我想将小数位移到12.34

所以要做到这一点,我将.1乘以1234两次,有点像这样

double x = 1234;
for(int i=1;i<=2;i++)
{
  x = x*.1;
}
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

这将打印结果"12.340000000000002"

有没有一种方法,而不是简单地将其格式化为两位小数,以正确的双重存储12.34?

java double decimal

96
推荐指数
8
解决办法
9万
查看次数

这个简单的"双重"计算有什么问题?

在java中这个简单的"双重"计算有什么问题?

我知道一些十进制数字不能正确地用float/double二进制格式表示,但是使用变量d3,java能够存储并显示2.64而没有任何问题.

double d1 = 4.64;
double d2 = 2.0;
double d3 = 2.64;
double d4 = d1 - d2;

System.out.println("d1      : " + d1);
System.out.println("d2      : " + d2);
System.out.println("d3      : " + d3);
System.out.println("d4      : " + d4);
System.out.println("d1 - d2 : " + (d1 - d2));
Run Code Online (Sandbox Code Playgroud)

回答,

d1      : 4.64
d2      : 2.0
d3      : 2.64
d4      : 2.6399999999999997
d1 - d2 : 2.6399999999999997
Run Code Online (Sandbox Code Playgroud)

java double-precision

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×2

decimal ×1

double ×1

double-precision ×1