【问题标题】:Print 1 digit after decimal point in Java [duplicate]在Java中打印小数点后1位[重复]
【发布时间】:2020-07-24 11:39:36
【问题描述】:

我想打印一个小数点后有数字的数字,但我只想显示一个数字。

ratio = (double) comparisons / arrayLength;

(虽然 ratio 是 double 并且比较,arrayLengthint)。

我在一个类中进行计算并将结果添加到string(稍后从方法返回时),并在测试类中进行打印。

我需要更改比率,并且不允许在测试类中使用printf

感谢您的帮助

【问题讨论】:

  • 欢迎来到 Stack Overflow。请在提问前先搜索,并以比任何人都输入新答案更快的速度找到几个好的答案。

标签: java


【解决方案1】:

由于您已经将结果保存在字符串中,您可以这样做-

 String result = String.format("%.1f",ratio);

如果您想将答案添加到现有字符串,那么您可以这样做-

result = String.format(result+"%.1f",ratio);

一个例子是这样的-

 String s = String.format("%.1f",2.3535);

输出 - 2.4

【讨论】:

  • 我这样做了,但现在它只是打印比例,而不是字符串的其余部分
  • 是否要将“比率”添加到现有字符串?比如“比率是 - 2.4”?
  • 是的,它是一个现有的字符串
  • 然后执行此操作- result = String.format(result+"%.1f",ratio); 它会将比率与字符串连接起来。
  • 成功了!非常感谢你
【解决方案2】:

您可以使用DecimalFormat 明确格式化数字:

DecimalFormat df = new DecimalFormat("###.#");
String formatted = df.format(ratio);
System.out.printly("ratio is " + ratio);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多