因此,在我用来学习java的视频中,他们放置了一个' f'在浮动之后(根据java规则),他告诉你放置一个' d'在十进制数字后面,我想知道它是否是一个很好的做法?
letters = [['a', 'b', 'c'], ['d', 'e', 'f']]
numbers = [[1, 2, 3], [4, 5, 6]]
letters = pd.DataFrame(letters)
0 1 2
0 a b c
1 d e f
numbers = pd.DataFrame(numbers)
0 1 2
0 1 2 3
1 4 5 6
答案 0 :(得分:1)
d
或D
不是“十进制”号码,而是double
。这不是必需的,因为Java中的每个文字浮点数默认为双倍。
所以,这个:
double x = 5.0;
将执行与此相同的操作:
double x = 5d;
我想知道这样做是否是一个好习惯
这不是一个好的做法问题。我读过的大多数代码都会在最后省略d
。如果您觉得使用d
更适合您的文字值,那么它也可以。
答案 1 :(得分:1)
是的,如果您不打算包含小数部分。 5
本身就是integer literal,然后会提升为double
。 5d
是double literal。您也可以编写5.0
,它不能是整数文字,因此是浮点文字。
从上面的第二个链接:
对于十进制*浮点文字,至少有一个数字(在整数或小数部分中)以及小数点,指数或浮点数**类型后缀是必需的。所有其他部分都是可选的。指数(如果存在)由ASCII字母e或E表示,后跟可选的有符号整数。
(我的重点)
之后
浮点文字的类型为
float
,如果后缀为ASCII字母F
或f
;否则其类型为double
,并且可以选择以ASCII字母D
或d
(§4.2.3)为后缀。
*这里它们是指数字基数(基数为10),而不是小数类型。
**这里他们的意思是浮点后缀,f
F
/ float
或d
/ D
double
< / p>
答案 2 :(得分:0)
我能想到的唯一可能用途是用What do F and D mean at the end of numeric literals?写的:
void foo(float x);
void foo(double x);
如果使用文字参数foo(5.0)
,您可能希望d
或f
指定您的意思(或使用5d
备用字符)。这在我看到的大多数Java代码中很少见,所以我不确定是否真的有意义。具体地
double x = 5d;
似乎多余。它已经说它在开始时是双倍的。