当前位置: 首页 > 知识库问答 >
问题:

停止带百分号的十进制格式移动十进制

蒋典
2023-03-14

有没有办法防止十进制格式对象自动将小数点向右移动两位?

此代码:

double d = 65.87;
DecimalFormat df1 = new DecimalFormat(" #,##0.00");
DecimalFormat df2 = new DecimalFormat(" #,##0.00 %");
System.out.println(df1.format(d));
System.out.println(df2.format(d));

产生:

65.87
6,587.00 %

但是我希望它能产生:

65.87
65.87 %

共有3个答案

贝杜吟
2023-03-14

我就是这样做的:

// your double in percentage:
double percentage = 0.6587;

// how I get the number in as many decimal places as I need:
double doub = (100*10^n*percentage);
System.out.println("TEST:   " + doub/10^n + "%");

其中n是所需的小数位数。

我知道这不是最干净的方法,但它有效。

希望这有帮助。

翟宾实
2023-03-14

默认情况下,在格式字符串中使用%时,要格式化的值将首先乘以100。您可以使用十进制格式将乘法器更改为1。setMultiplier()方法。

double d = 65.87;
DecimalFormat df2 = new DecimalFormat(" #,##0.00 %");
df2.setMultiplier(1);
System.out.println(df2.format(d));

产生

 65.87 %
黎玺
2023-03-14

用单引号包围你的%:

DecimalFormat df2 = new DecimalFormat(" #,##0.00 '%'");
 类似资料:
  • 我正在使用DecimalFormats将双打格式化为字符串。然后这个字符串被集成到我的表示层中。 问题:我想保留所有的小数。示例:“12345678.123456789” 格式:#.#- 我可以用##########对于大小数点,但是如果小数点更长呢? 我发现我的小测试程序很有用,想和大家分享。 你能帮我显示所有小数吗? 这导致: 编辑:一位用户提到了一个相关的问题:如何很好地将浮点数格式化为字符

  • 是否可以使用一种方法或其他方法,而不是“%.6f”。格式(值)以实现相同的目标?这是我的代码: 我想让它更具动态性和可读性

  • 问题内容: 我在格式化双精度小数时遇到一些问题。如果我有一个双精度值,例如4.0,我该如何格式化小数位使其改为4.00? 问题答案: 一种方法是使用NumberFormat。

  • 我在格式化双精度小数时遇到了一些问题。如果我有一个双精度值,例如4.0,我如何设置小数的格式,使其变为4.00?

  • 问题内容: 我需要将一个十进制值格式化为一个字符串,在该字符串中,我总是以至少2个小数和最多4个小数显示。 所以举个例子 可以使用String.format命令完成此操作吗? 还是在Java中有更简单/更好的方法来做到这一点。 问题答案: 您需要java.text.DecimalFormat。

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec