Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数字文字后缀的编码约定?_Java_Double_Number Literal_Sun Coding Conventions - Fatal编程技术网

Java 数字文字后缀的编码约定?

Java 数字文字后缀的编码约定?,java,double,number-literal,sun-coding-conventions,Java,Double,Number Literal,Sun Coding Conventions,我用谷歌搜索了一下,但找不到解决问题的办法 根据double和float声明,是否有普遍接受的java编码约定 这些准则建议使用什么语法 Double d = 1d; Double d = 1D; Double d = 1.; Double d = 1.0; Double d = 1.0d; Double d = 1.0D; Float和Long以及它们的原语也是如此 Long l = 1l; Lo

我用谷歌搜索了一下,但找不到解决问题的办法

根据double和float声明,是否有普遍接受的java编码约定

这些准则建议使用什么语法

      Double d = 1d;
      Double d = 1D;
      Double d = 1.;
      Double d = 1.0;
      Double d = 1.0d;
      Double d = 1.0D;
Float和Long以及它们的原语也是如此

      Long l = 1l;
      Long l = 1L;

所有代码都编译相同,但在阅读这些代码行时,在清晰度上存在差异。带大写字母d的那一个似乎更容易被误读-->“d”可以被理解为“0”左右。

您通常使用最能与数字分开的字母。我很长一段时间都不知道这背后的原因,但有人告诉我大写字母和数字更容易区分。想象你有一个长时间的“L”:

long x = 10000L
这比

long x = 10000l
“l”很容易被误认为是“1”


在您的情况下,您应该更喜欢“d”而不是“d”。

这实际上只是个人偏好,我相信小写更常见。就像缩进一样,选择一些东西并坚持下去

其中提到,Capital
L
优先用于
long
值,因为它更易于阅读,但没有说明f/f或d/d。来源:

浮点文本

如果浮点文字以字母F或F结尾,则它的类型为float;否则它的类型是double,并且可以选择以字母D或D结尾

浮点类型(float和double)也可以使用E或E(用于科学记数法)、F或F(32位浮点文字)和D或D(64位双文字;这是默认值,按惯例省略)

这说明:

  • D和D都有相同的含义——正如你所观察到的
  • “按惯例[D或D]被省略”,因为它们是默认值
“什么更好”这类问题在StackOverflow上不属于主题,因为它们不能给出正确或错误的答案,只能给出意见


但是如果你要求约定,我倾向于遵循我在上面找到的方法——省略后缀。

我总是使用小写字母<代码>浮动f=3,14f;双d=3,14d;long l=10L但从长远来看,最好使用大写字母l,因为小写字母看起来像1。我请求重新打开这个问题。我认为这是一个完全合理的关于编码标准的问题,可以客观地回答。它不是基于意见的。我想用一个公认的编码标准列表(SUN、Google、Gitlab、MISRA)来回答这个问题,并对它们进行分类/评估。但问题已经解决了。简而言之:许多编码约定建议使用
L
,但不建议使用
L
。有些人喜欢大写字母,但有人讨论说
D
D
更糟糕。它们都不能告诉你是否应该使用
1.
over
1.0
over
1d
。你所说的对于L/L是正确的,但是对于D/D,OP所说的正好相反……是的,你是对的。确实编辑了我的回答L'在谷歌的公众中得到了明确的提及(§4.8.8数字文字)。如果有人问起浮动的约定怎么办?;)
double d1 = 123.4;
// same value as d1, but in scientific notation
double d2 = 1.234e2;
float f1  = 123.4f;