Android-四舍五入到小数点后2位[重复]

Posted

技术标签:

【中文标题】Android-四舍五入到小数点后2位[重复]【英文标题】:Android - Round to 2 decimal places [duplicate] 【发布时间】:2012-03-11 02:20:36 【问题描述】:

可能重复:Round a double to 2 significant figures after decimal point

我知道有很多关于如何舍入此类数字的示例。 但是有人可以告诉我如何四舍五入,以获得我可以显示为的价值 字符串和总是有 2 位小数?

【问题讨论】:

docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html 这将是你的朋友。 double myNum = 34.393893 DecimalFormat df = new DecimalFormat("#.##"); String twoDigitNum = df.format(myNum); 【参考方案1】:

一种简单的方法:

    Double d;
    Int i;
    D+=0.005;
    i=d*100;
    Double b = i/100;
    String s = b.toString():

【讨论】:

这看起来并不容易。尽管为尝试竖起大拇指。【参考方案2】:

你可以使用String.format("%.2f", d),你的double会自动四舍五入。

【讨论】:

是的,我正在寻找,但应该是:String.format("%.2f", d),谢谢 更安全的方法是使用 DecimalFormat。使用您的方法,可以选择在某些国家/地区出现格式错误,作为开发人员您永远不会注意到并且可能不愿意检查。更好的方法是这样做: DecimalFormat percentFormat = new DecimalFormat("00.00"); String finalPercentage = percentFormat.format(percentage); 注意语言环境。在法语(加拿大)中,它将使用逗号而不是小数。像这样强制区域设置(示例):String.format(Locale.CANADA, "%.2f", d) @usman 最初的问题是关于转换为具有固定精度的字符串,所以没有任何问题 如果您在某些地区搞砸了。那么这将是最好的解决方案:Double rounded= new BigDecimal(myDouble).setScale(2, RoundingMode.HALF_UP).doubleValue();

以上是关于Android-四舍五入到小数点后2位[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中将正值四舍五入到小数点后 2 位

SQL如何将整数值四舍五入到小数点后2位

NSNumberFormatter 仅四舍五入到小数点后 3 位

四舍五入正确到小数点后 2 位,但如果非常接近,则将其设置为最接近的整数

怎样保留小数点后六位,六位以后不四舍五入?

JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数