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

用Java中的字符串格式化十进制值

万俟修诚
2023-03-14

我是android和java编程的新手,所以请原谅我,如果这是一个简单的问题。我的问题是在小数点后添加%。我会得到双倍的值,不知道小数点后有多少位数,我需要在小数点后转换为两位数,最后需要在最后的位置添加%。问题是,我将只格式化一次双倍值。我已经尝试过像这样DecimalFormat ("#.##%"), 但是小数点向前移动了两位数。请帮助我摆脱这个问题。

使用十进制格式(“#.##%”,

实际:34.142545

产量: 3414.25%

共有2个答案

缑嘉玉
2023-03-14

通过在格式中添加%,您乘以100并添加%字符。这就是为什么它看起来像小数点移动。

您可以使用以下内容:

String output = new DecimalFormat("#.##").format(input) + "%";

另一种方法是在格式化之前除以100:

String output = new DecimalFormat("#.##%").format(input / 100.0);
孟茂学
2023-03-14

如果您以格式使用%,这意味着您要将值转换为百分比,但是您需要记住,百分比世界中的值1等于100%,因此您使用的值将自动乘以100。为了避免这种行为,您可以通过引用带有撇号的'%'%更改为文字

new DecimalFormat("#.##'%'");
 类似资料:
  • 问题内容: 我需要从随机整数(0-255)列表中创建一个十六进制数字字符串。每个十六进制数字应由两个字符表示:5-“ 05”,16-“ 10”等。 例: 我设法提出了: 但是,这看起来有点尴尬。有没有更简单的方法? 问题答案:

  • 问题内容: 我想将整数数字格式化为十六进制字符串。 打印,但我希望它作为。我怎么做? 问题答案: 试试这个

  • 如何转换“大”十六进制数(字符串格式): EC 851 A 69 B 8 ACD 843164 E 10 CFF 70 CF 9 E 86 DC 2 FEE 3 CF 6 F 374 B 43 C 854 E 3342 A 2 F 1 AC 3 E 30 C 741 CC 41 E 679 DF 6 D 07 CE 6 FA 3 A 66083 EC 9 B 8 C 8 BF 3 AF 05 D

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

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

  • 问题内容: 我需要将二进制字符串转换为十六进制字符串,但是我有问题。我通过这种方法将二进制字符串转换为十六进制字符串: 没关系!但是我丢失了字符串左侧的零。例如: 该方法返回此:123456789ABCDEF,但我想返回此: 00000123456789ABCDEF 问题答案: 而不是我将使用解析值,然后以所需的宽度(在您的示例中为21)输出值: