数字字面量后缀的编码规范是什么?

5

我进行了一些谷歌搜索,但无法找到解决我的问题的方法。

是否有根据double和float声明的普遍接受的Java编码规范

这些准则推荐什么语法?

      Double d = 1d;
      Double d = 1D;
      Double d = 1.;
      Double d = 1.0;
      Double d = 1.0d;
      Double d = 1.0D;

同样适用于浮点数和长整型及其原始类型。
      Long l = 1l;
      Long l = 1L;

所有编译都一样,但阅读这些代码行时清晰度有所差异。大写字母"D"的那个代码行似乎更容易出错--> "D" 可能会被误读为 "0" 或其他字符。


3
我总是使用小写字母。float f = 3,14f; double d = 3,14d; long l = 10L 但对于long类型最好使用大写字母L,因为小写字母看起来像数字1。 - kai
我请求重新打开这个问题。我认为这是一个完全合法的关于编码标准的问题,可以客观地回答。它不是基于个人观点的。 - Datz
我想用一份已接受的编码标准清单(SUN、Google、Gitlab、MISRA)来回答这个问题,并对它们进行分类/评估。但是这个问题已经关闭了。 简而言之:许多编码约定建议使用 L 而不是 l。有些人喜欢大写字母,但也有讨论认为 Dd 更糟糕。而且没有一个标准告诉你应该在 1.1.01d 中使用哪一个。 - Datz
3个回答

12

这只是个人偏好,我认为小写更常见。就像缩进一样,选择一种风格并坚持下去。

Java 语言规范 提到对于 long 类型的值,首选大写的 L,因为这样更易于阅读,但它没有提到 f/F 或 d/D。


5
通常使用字母与数字分开。我很长时间不知道原因,但有人告诉我大写字母更容易与数字分离。想象一下你有一个“L”代表长:
long x = 10000L

比…更清晰
long x = 10000l

“l”很容易被误认为是“1”。 在这种情况下,您应该选择“d”,而不是“D”。

1
你所说的对于L/l是正确的,但对于D/d,原帖作者声称完全相反... - chiccodoro
没错,你说得对。我编辑了我的回答。 - PKlumpp
确实,在Google的公共Java风格指南(§4.8.8数字字面量)中明确提到了'L'。 - Luke Usherwood

5

来自Java教程

浮点字面量

如果浮点字面量以字母F或f结尾,则其类型为float;否则,它的类型为double,并且可以选择以字母D或d结尾。

浮点类型(float和double)也可以使用E或e(表示科学计数法)、F或f(32位浮点字面量)和D或d(64位双精度字面量;这是默认值,通常省略)表示。

double d1 = 123.4;
// same value as d1, but in scientific notation
double d2 = 1.234e2;
float f1  = 123.4f;

这告诉你:
- D和d具有相同的含义-正如您所观察到的那样 - “按惯例,[D或d被]省略”,因为它们是默认值
在StackOverflow上,“什么更好”的问题是不相关的,因为它们不能有正确或不正确的答案,只有意见。
但是,如果您要求一种惯例,我倾向于遵循上述发现-省略后缀。

如果有人问浮点数的约定呢? ;) - Line

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接