当前位置: 首页 > 面试题库 >

Java:格式数字(百万)

狄天逸
2023-03-14
问题内容

有没有一种方法可以使用DecimalFormat(或其他一些标准格式化程序)来格式化数字,如下所示:

1,000,000 => 100万

1,234,567 => 1.23M

1,234,567,890 => 1234.57M

基本上是将某个数字除以100万,保留小数点后两位,并在最后打一个’M’。我曾考虑过创建NumberFormat的新子类,但它看起来比我想象的要复杂。

我正在编写一个具有如下格式方法的API:

public String format(double value, Unit unit); // Unit is an enum

在内部,我将Unit对象映射到NumberFormatters。实现是这样的:

public String format(double value, Unit unit)
{
    NumberFormatter formatter = formatters.get(unit);
    return formatter.format(value);
}

请注意,因此,我不能期望客户端被一百万除以,并且我不能只使用String.format()而不将其包装在NumberFormatter中。


问题答案:
String.format("%.2fM", theNumber/ 1000000.0);

有关更多信息,请参见String.format
javadocs



 类似资料:
  • 数字的格式在解决实际问题时使用非常普遍,这时可以使用 DedmalFormat 类对结果进行格式化处理。例如,将小数位统一成 2 位,不足 2 位的以 0 补齐。 DecimalFormat 是 NumberFormat 的一个子类,用于格式化十进制数字。DecimalFormat 类包含一个模式和一组符号,常用符号的说明如表 1 所示。 表 1 DecimalFormat 支持的特殊字符 符号

  • 本文向大家介绍Java中使用%(百分号)格式化字符串,包括了Java中使用%(百分号)格式化字符串的使用技巧和注意事项,需要的朋友参考一下 以下是使用%在Java中实现字符串格式的代码- 示例 输出结果 一个名为Demo的类包含主函数。这里定义了一个字符串值,通过将其连接到另一个变量来格式化该字符串。类似地,也使用%运算符对浮点数进行格式化。这两个值都打印在控制台上。

  • 问题内容: 我想知道是否有可能在Java中使用String.format方法给出一个在零之前的整数? 例如: 1将变为001 2将变为002 … 11将变为011 12将变为012 … 526将保留为526 … 目前,我尝试了以下代码: 不幸的是,它在数字之前带有3个空格。可以在数字前加零吗? 问题答案: 使用格式说明为整数。的装置,该数目将是零填充,如果它是少于三个(在这种情况下)位。 有关其他

  • 问题内容: 如何用Java格式化数字? 什么是“最佳做法”? 格式化之前是否需要四舍五入一个数字? 等等 问题答案: 在此线程中,有不同的方法可以执行此操作:

  • 问题内容: 我有这个字符串: 并需要将其转换为: 因此,规则为: 将数字除以100,并使用逗号作为小数点分隔符 去除前导零 保留两位小数 问题答案: 在PHP手册页面上: 字符串number_format(float $ number,int $ decimals = 0,字符串$ dec_point =’。’,字符串$ thousands_sep =’,’) 如果您希望将数字格式化为,请使用:

  • number(string $format): self string $format $config = [ 'path' => './tests' ]; ​ $fileObject = new \Vtiful\Kernel\Excel($config); ​ $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHan