15

在我的代码中,我使用整数乘以 100 作为小数(0.1 是 10 等)。你能帮我格式化输出以显示为十进制吗?

4

7 回答 7

29
int x = 100;
DecimalFormat df = new DecimalFormat("#.00"); // Set your desired format here.
System.out.println(df.format(x/100.0));
于 2012-10-20T16:34:07.710 回答
12

我会说使用0.00格式:

      int myNumber = 10;
      DecimalFormat format = new DecimalFormat("0.00"); 
      System.out.println(format.format(myNumber));

它会像这样打印:           

      10.00

这里的优点是:

如果你喜欢:

      double myNumber = .1;
      DecimalFormat format = new DecimalFormat("0.00"); 
      System.out.println(format.format(myNumber));

它会像这样打印:

      0.10
于 2012-10-20T16:38:14.400 回答
5

您可以通过除以它们的因子(作为双精度数)打印出编码为整数的小数

int i = 10; // represents 0.10
System.out.println(i / 100.0);

印刷

0.1

如果您需要始终显示两位小数,您可以使用

System.out.printf("%.2f", i / 100.0);
于 2012-10-20T16:41:17.587 回答
2

基于另一个答案,使用BigDecimal,这也有效:

BigDecimal v = BigDecimal.valueOf(10,2);
System.out.println(v.toString());
System.out.println(v.toPlainString());
System.out.println(String.format("%.2f", v));
System.out.printf("%.2f\n",v);

甚至您的好老人DecimalFormat也可以使用BigDecimal

DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(v));
于 2017-03-15T20:32:02.080 回答
1

你可以试试这个: -

new DecimalFormat("0.00######");

或者

NumberFormat f = NumberFormat.getNumberInstance();
f.setMinimumFractionDigits(2);
于 2012-10-20T16:39:26.023 回答
0

您可以使用 int 的双重状态。它为您提供带小数的输出。然后你可以除以 100。

于 2012-10-20T18:17:58.913 回答
0

您可以使用 int 的双重状态。它为您提供带小数的输出。

如果你想让数字站在点后面。你可以使用这个:

**int number=100;
double result;
result=number/(number.length-1);**

我希望你能用这个。

于 2012-10-20T18:28:07.947 回答