![](/img/trans.png)
[英]Java - Include decimal and preceding digits when setting length of double to be printed?
[英]Limit decimal digits in Java when using double
我有几个变量,都是int,我用它们做这个操作:
percentage = ((double)100) - (((double)100)/(((double)64)*((double)dist.size()-1))*((double)bestDist));
强迫它们加倍,因为我想计算一个百分比。 问题是(当然)我得到的结果像65.88841666666666,我想得到一个只有2个十进制数字的数字,我不介意近似它,我也可以将所有数字都切掉,所以我会得到65.88而不是65.89。 我怎样才能做到这一点?
如果这是为了显示结果,则可以使用如下格式器:
String formatted = String.format("%.2f", 65.88888);
在此,.2表示在小数点后显示2位数字。 有关更多选项,请尝试使用BigDecimal
您可以为此使用回合
double roundedPercentage = (double) Math.round(percentage * 100) / 100;
尽管@CHERUKURI的建议是我真正使用的自己,但是当它为MAX_DOUBLE时,它将产生不正确的结果。
Math.ceil(percentage) + Math.ceil((Math.ceil(percentage) - percentage) * 100)/100.0;
它有太多的方法调用,但是,它将为您提供应有的功能。
如果数量很小,那么以下内容就足够了:
(double) Math.round(percentage * 100) / 100;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.