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

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

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

【问题讨论】:

标签: android double decimal rounding


【解决方案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();
猜你喜欢
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
相关资源
最近更新 更多