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

使用DecimalFormat Grouping java时删除最后一个分组分隔符

巫马玉堂
2023-03-14

我想在我的android calculator应用程序中设置冗长的双倍数字格式2个问题。。。首先,我想启用按3分组,这样1200将显示为1200。但对于像1000这样的数字,我得到的是1,如何才能得到1000作为结果?

另一个问题是,我希望结果最多包含25个整数和4个小数位数。。。但即使我将Decimalformat max设置为25,当整数的数量超过18后,数字变成了零。例如,我想要的是1111111111111111111111111111,但我得到了1111111111111111111000000,以下是代码

 DecimalFormat df = new DecimalFormat();
    df.setMaximumFractionDigits(4);
    df.setMaximumIntegerDigits(25);
    df.setGroupingUsed(true);
    df.setGroupingSize(3);
    String formatted = df.format(mResultBeforeFormatting);

我应该使用什么模式?

共有2个答案

田博远
2023-03-14

我在StackOverflow上找到了问题两部分的答案。

首先,我想启用按3分组

下面是分组问题的几种解决方案。

另一个问题是我想要最多25个整数位的结果

在这种情况下,真正发生的是Java Double不能表示25个十进制数字。

对于这个问题,您可能想看看BigDecimal类,它可以表示示例中的数字。

苏翰学
2023-03-14

好吧,对于像我这样面临这个问题的人来说,第一部分的最佳模式是

 DecimalFormat df = new DecimalFormat("###,##0.####");

对于第二个问题,正如《x-code》指出的,使用double是没有希望的。应尝试使用BigDecimal

 类似资料:
  • 问题内容: 这是一种对整数数组进行排序的方法。如何从输出中删除最后一个分隔符? 输出量 期望的输出 问题答案: 如果您使用的是Java 8,则非常干净的解决方案是使用新类。此类旨在将Strings与自定义分隔符(可能还带有前缀/后缀)连接在一起。使用此类,您无需担心像在代码段中一样删除最后一个分隔符。 您还可以删除循环并改用Streams:

  • 有没有办法防止分割器显示在最后一个项目之后?

  • 很抱歉标题不好,不知道该怎么写。无论如何,我正在使用ANTLR生成一个解析树。我正在尝试解析函数参数,这在某种程度上是可行的,但有一些事情我想更改,但我不确定如何更改。 这是我目前的设置: 这很好,很有效。但当我输入时说 它给我一个错误,一个我更愿意改变的结果。错误是它希望每个参数后面都有一个逗号,所以

  • 在字符串中分隔符的最后一次出现时拆分字符串的推荐Python习惯用法是什么?例如: 接受第二个参数,该参数是要拆分的分隔符的引用。与常规列表索引一样,表示从末尾开始的最后一个。如何做到这一点?

  • 问题内容: 对于在字符串中 最后一次 出现定界符时拆分字符串的建议Python惯用法是什么?例: 接受第二个参数,即要分割的分隔符的出现。像常规列表索引一样,表示末尾的末尾。如何才能做到这一点? 问题答案: 使用 或代替: 可让您指定分割次数,而仅分割一次,但总是返回固定数量的元素(前缀,定界符和后缀),并且对于单个分割情况而言更快。 演示: 两种方法都从字符串的右侧开始拆分;通过将最大值作为第二

  • 问题内容: 我有一个csv文件,数据显示如下 我正在尝试将第一列保存到新文件(不包含字段分隔符,然后从主csv文件中删除第一列以及第一个字段分隔符。 有任何想法吗? 到目前为止,这是我尝试过的 但这不起作用 问题答案: 假设您的原始CSV文件名为“ orig.csv”: