我有一个号码1349.9431
。如何仅使用除法(/
)和模数(%
)运算符打印3位小数,2位小数和1位小数的数字?
每当我尝试划分或使用模数时,我会得到一些疯狂的数字:13499.430999999999
答案 0 :(得分:1)
只有/
运算符,到3个小数点:
double x = 1349.9431;
x /= 0.001;
long y = (long) y; // downcast to an integer
double z = (double) y / 1000;
System.out.println(threeDecimal);
// 1349.943
答案 1 :(得分:0)
嗯,由于double
格式的局限性,这有点棘手,但我用它完成了它。请注意,这可能是不精确的。
public static void main(String[] args) {
double d = 1349.9431;
System.out.println(d);
d /= 0.0001;
System.out.println(d);
int i = (int)d;
System.out.println(i);
i -= i % 100;
System.out.println(i);
d = i / 10000d;
System.out.println(d);
}