【问题标题】:Round Number in Java [duplicate]Java中的整数[重复]
【发布时间】:2014-10-26 01:17:53
【问题描述】:

如何在 Java 中对数字进行四舍五入?就像,我有这个数字3.4666666666663,我想将它四舍五入到最接近的浮点数,即 3.5。我不想四舍五入到 4

【问题讨论】:

  • 当你说“这个数字”时,它的开头是什么? float? double? BigDecimal?
  • 我相信你对最近浮点数的定义并没有被普遍接受。
  • @Keppil 基本上我想将数字四舍五入到下一个浮点数,后面有 1 个数字,例如“2.444424”到“2.5”,“5.66764”到“5.7”
  • 你还没有回答我的问题;它对您寻求的答案有巨大的影响
  • @fge 这是一个double double a = (n1 * 4) - 60; Double b = (a * -1) / 6; cp_nota2.setText(b + "");

标签: java numbers floating


【解决方案1】:

您有几个选择,您可以使用DecimalFormatBigDecimal 甚至是String.format() 之类的

double v = 3.4666666666663;
NumberFormat nf = new DecimalFormat("#.0");
System.out.println(nf.format(v));
MathContext mc = new MathContext(2);
System.out.println(BigDecimal.valueOf(v).round(mc));
System.out.printf("%.1f%n", v);

输出是

3.5
3.5
3.5

【讨论】:

  • 应该提到的是,第一种和第三种方法使用了特定于语言环境的十进制分隔符。
【解决方案2】:

为什么不把它乘以 10,四舍五入,然后除以 10。

【讨论】:

    猜你喜欢
    • 2015-01-12
    • 1970-01-01
    • 2013-02-27
    • 2011-03-09
    • 2014-12-06
    • 2023-04-02
    相关资源
    最近更新 更多