在它前面具有零的整数是什么意思,我该如何打印它? [英] What does an integer that has zero in front of it mean and how can I print it?

查看:188
本文介绍了在它前面具有零的整数是什么意思,我该如何打印它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  class test {
public static void main(String args []){
int a = 011;
System.out.println(a);
}
}

为什么我得到 9 作为输出而不是 011



我如何获得 011 作为输出?

解决方案



解决方案:



如果你希望你的整数保持值11,那么不要花哨,只需分配11.毕竟,符号不会改变任何值。我的意思是,从数学的角度来看11 = 011 = 11,0。

  int a = 11; 

格式化仅在您打印时(或转换 int时)很重要字符串)。

  String with3digits = String.format(%03d,a); 
System.out.println(with3digits);

使用格式化程序%03d添加前导零。





或者,你可以在1行,使用 printf 方法。

  System.out.printf (%03d,a); 


class test{
  public static void main(String args[]){
     int a = 011;
     System.out.println(a);
  }
}

Why I am getting 9 as output instead of 011?

How can I get 011 as output?

解决方案

The JLS 3.10.1 describes 4 ways to define integers.

An integer literal may be expressed in decimal (base 10), hexadecimal (base 16), octal (base 8), or binary (base 2).

An octal numeral consists of a digit 0 followed by one or more of the digits 0 through 7 ...

A decimal numeral is either the single digit 0, representing the integer zero, or consists of an digit from 1 to 9 optionally followed by one or more digits from 0 to 9 ...

In summary if your integer literal (i.e. 011) starts with a 0, then java will assume it's an octal notation.

Solutions:

If you want your integer to hold the value 11, then don't be fancy, just assign 11. After all, the notation doesn't change anything to the value. I mean, from a mathematical point of view 11 = 011 = 11,0.

int a = 11;

The formatting only matters when you print it (or when you convert your int to a String).

String with3digits = String.format("%03d", a);
System.out.println(with3digits);

The formatter "%03d" is used to add leading zeroes.

Alternatively, you could do it in 1 line, using the printf method.

System.out.printf("%03d", a);

这篇关于在它前面具有零的整数是什么意思,我该如何打印它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆