【发布时间】:2020-09-20 04:20:01
【问题描述】:
无论浮点数如何,总是使用双精度不是浪费空间吗? AFAIK float 使用 4B 或 32 位,而 double 占用 8B 或 64 位。为什么编译器无法判断浮点数是否足够?
【问题讨论】:
-
0.5是双精度,0.5f是浮点数。 -
查看en.cppreference.com/w/cpp/language/floating_literal,特别是与浮点文字上的可选后缀有关的部分。
-
“为什么编译器不能判断浮点数是否足够?” -- 这个问题无关紧要,因为语言设计者决定不给编译器一个机会。
-
如果您知道以后可能分配给
x的所有值的范围,那只是浪费空间。 -
我可能应该在我之前的评论中提出更改。与其询问编译器的能力,不如询问“为什么编译器允许确定
float是否足够?”更相关。幸运的是,接受的答案解决了这个修改后的问题。