[英]Print double with 3, 2 and 1 decimal spaces with / and % only
我有一个号码1349.9431
。 如何仅使用除法 ( /
) 和模数 ( %
) 运算符打印具有 3 个小数位、2 个小数位和 1 个小数位的数字?
每当我尝试除法或使用模数时,我都会得到一些疯狂的数字,例如: 13499.430999999999
好吧,由于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);
}
仅使用/
运算符,保留 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.