繁体   English   中英

仅使用 / 和 % 打印带有 3、2 和 1 个小数位的 double

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM