在数字中添加逗号(分组分隔符)而不修改小数?

2024-04-16

我正在尝试格式化字符串以在 3 位数字组之间添加逗号

EG:

1200.20 >> 1,200.20
15000   >> 15,000

我正在尝试弄清楚如何使用 DecimalFormat 来完成此操作,到目前为止,我一直在使用自己的脚本,该脚本似乎过于复杂。我不知道该怎么做,使用 # 只是隐藏尾随零,使用 0 将它们添加到数字中。

这就是我现在正在尝试的:

DecimalFormat df = new DecimalFormat("###,###.####", new DecimalFormatSymbols(Locale.US));
resultStr = df.format(Double.valueOf(resultStr));

我确信这一定很容易,但我不知道该怎么做。我不必使用 DecimalFormat 来完成此操作,我只是认为这会是更简单的方法。如何简单地添加逗号而不以任何方式修改小数?


您应该使用 NumberFormat 对象并将其设置为使用分组。就像是

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

public class NumberFormatEg {
   public static void main(String[] args) {
      NumberFormat myFormat = NumberFormat.getInstance();
      myFormat.setGroupingUsed(true);

      double[] numbers = { 11220.00, 232323232.24, 121211.55, 102.121212 };

      for (double d : numbers) {
         System.out.println(myFormat.format(d));
      }
      System.out.println();

      DecimalFormat decimalFormat = new DecimalFormat("#.00");
      decimalFormat.setGroupingUsed(true);
      decimalFormat.setGroupingSize(3);

      for (double d : numbers) {
         System.out.println(decimalFormat.format(d));
      }

      System.out.println("\nFor Germany");

      NumberFormat anotherFormat = NumberFormat
            .getNumberInstance(Locale.GERMAN);
      if (anotherFormat instanceof DecimalFormat) {
         DecimalFormat anotherDFormat = (DecimalFormat) anotherFormat;
         anotherDFormat.applyPattern("#.00");
         anotherDFormat.setGroupingUsed(true);
         anotherDFormat.setGroupingSize(3);

         for (double d : numbers) {
            System.out.println(anotherDFormat.format(d));
         }

      }

      System.out.println("\nFor US:");

      anotherFormat = NumberFormat.getNumberInstance(Locale.US);
      if (anotherFormat instanceof DecimalFormat) {
         DecimalFormat anotherDFormat = (DecimalFormat) anotherFormat;
         anotherDFormat.applyPattern("#.00");
         anotherDFormat.setGroupingUsed(true);
         anotherDFormat.setGroupingSize(3);

         for (double d : numbers) {
            System.out.println(anotherDFormat.format(d));
         }

      }
   }
}

返回:

11,220
232,323,232.24
121,211.55
102.121

11,220.00
232,323,232.24
121,211.55
102.12

For Germany
11.220,00
232.323.232,24
121.211,55
102,12

For US:
11,220.00
232,323,232.24
121,211.55
102.12

这样做的优点是该解决方案可以针对特定区域。

Edited
现在显示带有 DecimalFormat 对象的示例。请注意,如果使用此功能,则应设置分组大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数字中添加逗号(分组分隔符)而不修改小数? 的相关文章

随机推荐

  • android跨度点击事件

    好的 这些都是我的问题 我需要使用正则表达式来过滤掉除字母之外的所有内容 然后我需要将找到的单词包含在 word 标签中 有了这个 str str replaceAll pattern 0 现在我正在过滤所有正确的元素 标点符号 数字等 但
  • 催化剂控制器问题

    我刚刚在我的第一个大型项目中使用了催化剂 我想知道我是否按照预期的方式使用了催化剂 我有 Root pm 在该文件中我放置了多个 url 处理程序 每个 url 有一个控制器是最佳实践还是应该考虑分组 Catalyst 的优点之一是它的灵活
  • Rails,将文件上传到服务器时获取文件名

    我在 Rails 3 中使用 AJAX 上传器以及 paper clip 并在此处上传文件 def upload photo Photo create photo gt params file title gt params filenam
  • 有哪些 CSS 属性可以让元素脱离正常流程?

    有哪些 CSS 属性可以让元素脱离正常流程 这些属性可以是 float position absolute 等 这个问题涉及正常流程的所有可能的改变 只有以下属性会影响任何给定元素的正常流程 float right left positio
  • 在共享主机上安装 PHP 扩展

    我需要启用mcrypt https www php net manual en book mcrypt php我的网站上的功能 除了我在共享主机上 运行 Linux 并且显然无权访问php ini文件 似乎确实有安装 PEAR 模块的选项
  • 在 R 中从 MySQL 获取 UTF-8 文本返回“???”

    我一直在尝试从 R 获取 MySQL 数据库中的 UTF 8 文本 我在 OS X 上运行 R 通过 GUI 和命令行都尝试过 其中默认区域设置是 en US UTF 8 并且没有无论我尝试什么 查询结果都显示 对于所有非 ASCII 字符
  • Plotly 中子图的标题

    我正在尝试在 Plotly 中制作 3x3 子图的网格 我正在尝试为每个子图获取标题并在顶部获取主标题 但我似乎无法让它发挥作用 我看到这个很棒的网站 http takwatanabe me data science plotly layo
  • Python multiprocessing.Pool在MacOS和Linux系统上的不同性能

    我是 Python 初学者 我在项目中使用了 multiprocessing Pool 来提高性能 这是我使用 multiprocessing Pool 的代码片段 我在驻留服务器的开头构建池 并在每次服务器收到请求时使用 Pool app
  • 不定长度的数组[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何在未知长度的排序数组中找到随机元
  • MFC:如何在一个函数中捕获对话框每个控件的设置焦点

    我有 n 个对话框 它们具有相同的基本对话框 每个对话框都有自己的控件 编辑框 组合框 列表控件 etc 在基本对话框中 如何设置每个控件的焦点消息 例如 给出一个消息框 text Hello I got focus my ID is d
  • XAMPP:无法启动 Apache (Windows 10)

    我正在使用 XAMPP 并且可以启动 Apache 但是 MySQL php我的管理员 https en wikipedia org wiki PhpMyAdmin start 当我开始时 我收到此错误 10 07 49 Apache Er
  • 无法更改视图中绘制的圆圈的颜色

    我正在尝试更新我在子类中创建的圆圈的颜色UIView通过在类中创建一个方法来更新颜色 如下所示 但颜色不会改变 import UIKit class badge UIView struct mine static var p UIBezie
  • Linux 文件权限的正则表达式(数字表示法)

    我一生都无法找出正确的正则表达式 我正在寻找的是一个正则表达式来匹配 Linux 文件权限的有效数字表示 例如 740 表示全部读取无 777 表示全部全部 到目前为止 我已经尝试过以下操作 strtotest 740 echo strto
  • 如何从视图范围的 JSF bean 获取请求参数?

    我有查看范围bean 应该在 init PostConstruct 上访问请求 URL 中的值并在其生命周期内存储它们 我了解到 为了获得价值http请求 我需要以下代码 ManagedProperty param x private in
  • iOS 相当于 Android 片段/布局

    在 Android 中 您可以使用 Fragments 只开发一款针对手机和平板电脑的应用程序 这样您就可以拥有不同的 UI 您甚至可以仅使用布局并对代码设置一些条件来运行平板电脑或手机逻辑 我需要为 iPhone 和 iPad 开发一个应
  • 仅根据lucene中term出现次数较多的文档来计算分数

    我开始研究基于 lucene net 引擎的简历检索 文档 组件 它工作得很好 它会获取文档并根据 VSM 背后的理念是 查询词出现在 a 中的次数 文档相对于数量 该术语出现在所有 集合中的文档越多 该文件的相关内容是 询问 Lucene
  • 在 sphinx 侧边栏中启用版本阅读文档主题

    我想将 versions html 包含在侧边栏中 但无法成功 我尝试在 中为侧边栏添加 versions html 但这没有效果 html sidebars versions html 另外如何声明不同的版本conf py 我看过sphi
  • data.table 中的条件(不等式)连接

    我只是想弄清楚如何对两个 data tables 进行条件连接 我写了一个sqldf条件连接给我提供其开始或结束时间在其他开始 结束时间之内的电路 sqldf select dt2 start dt2 finish dt2 counts d
  • XCode:如何在上传前验证 IPA 是否有效?

    我在创建 IPA 文件时遇到问题 TestFlight 向我展示了这个原因 http help testflightapp com customer portal articles 402843 mismatched keychain ac
  • 在数字中添加逗号(分组分隔符)而不修改小数?

    我正在尝试格式化字符串以在 3 位数字组之间添加逗号 EG 1200 20 gt gt 1 200 20 15000 gt gt 15 000 我正在尝试弄清楚如何使用 DecimalFormat 来完成此操作 到目前为止 我一直在使用自己