【问题标题】:How to declare a numerical variable in java that is to hold a digit value with a fixed length of 3 digits always.如何在 java 中声明一个数值变量,该变量始终保存一个固定长度为 3 位的数字值。
【发布时间】:2018-06-30 22:54:16
【问题描述】:

如何在 Java 中声明一个数值变量,它始终保存一个固定长度为 3 位的数字值。也就是说,如果我输入 0,它应该被格式化为 000,如果我输入 31,那么它应该被格式化为 032,如果我输入 100,那么它应该保持 100。我需要这个来接收和存储发送的三位整数值通过休息响应作为错误代码。我尝试了正常的 int 和 Integer 但总是删除前面的零。谢谢您的帮助。

【问题讨论】:

  • 数字 000、031 和 032 不存在。 0、31 和 32 确实存在。您需要的是格式化字符串而不是数字。
  • 请发布您的代码以获得更多响应,如果您只想显示在 3 位上请DecimalFormat df = new DecimalFormat("000"); df.setRoundingMode(RoundingMode.DOWN); System.out.println(df.format(nb));
  • @StephaneM:请注意031 确实存在。这是一个十进制值为 25 的八进制文字。

标签: java variables integer int precision


【解决方案1】:

它不是数值变量的属性,而是格式化它的一种方式(将其转换为字符串)。

可以通过:String.format("%03d", x)(x 是一个数值变量)来完成。

【讨论】:

  • 所以在格式化值之后,它应该被存储为一个字符串,否则它可能不起作用。
  • @geobudex 我不会那样做:我会在需要的地方进行格式化
【解决方案2】:

我尝试了正常的 int 和 Integer 但前面的零总是 删除。

这种行为是预期的。 int类型不能表示前面有零的数字;随心所欲。为了实现3位效果,每次要显示整数时都必须格式化为字符串。你可以这样做:

String.format("%03d", number);  //number is the int.

如果数字是4,使用上面的代码sn-p会输出:004

我希望这会有所帮助.. 编码愉快!

【讨论】:

    【解决方案3】:

    这是格式问题而不是类型问题 你应该看看String.format 方法或DecimalFormat

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2020-04-05
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      相关资源
      最近更新 更多