首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浮点文字、浮点文字、双精度文字

浮点文字、浮点文字、双精度文字
EN

Stack Overflow用户
提问于 2016-12-23 02:35:33
回答 3查看 13.4K关注 0票数 6

在Java中“浮点文字”和“浮点文字”是一回事吗?

另外,Java中有没有叫做“双字面量”的东西呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-23 02:36:56

“浮点文字”是指任何浮点类型的文字。floatdouble都是浮点类型。

我以前从未遇到过“浮点文字”这个术语,但我认为它的本意与“浮点文字”是相同的。但是,您应该确保要求澄清,因为如果作者打算说“浮点文字”,那么它将是一个特别的float类型的文字,而不是一般的任何浮点类型。

对于Java语言中特定类型的浮点文字,一般形式#.#的所有文字都是double,除非您将fF (相同的差异)附加到文字后强制其为float

请查看Primitive Data Types by Oracle的教程页面。我已经复制了下面标题为“浮点文字”的小节。

浮点文字

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

浮点类型(浮点和双精度)也可以使用E或e(用于科学记数法)、F或f(32位浮点字面值)和D或d(64位双字面值;这是默认设置,按照惯例被省略)来表示。

double d1 = 123.4;//与d1相同的值,但采用科学记数法double d2 = 1.234e2;浮点f1 = 123.4f;

正如@Bubletan在对您的问题的评论中提到的那样,如果您真的很好奇,可以查看浮点文字的实际Java规范:§3.10.2. Floating-Point Literals

float文本的

示例:

1e1f 2.f .3f 0f 3.14f 6.022137e+23f

double文字的示例:

1e1 2. .3 0.0 3.14 1e-9d 1e137

票数 14
EN

Stack Overflow用户

发布于 2016-12-23 02:38:41

Java既有标记有f后缀的float文字(例如,2.5f),也有不需要后缀的double文字(例如,2.5)。

当您尝试将这样的文字赋值给变量时,可以演示两者之间的区别:

代码语言:javascript
复制
double dl = 2.5; // passes compilation
float fl1 = 2.5; // error - "Type mismatch: cannot convert from double to float"
float fl2 = 2.5f; // passes compilation

因为doublefloat都是浮点类型,所以两者都可以看作是浮点文字。

票数 3
EN

Stack Overflow用户

发布于 2016-12-23 02:42:08

“浮点文字”如果以Ff结尾,则为浮点型;否则为双精度型

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41289696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档