提问人:Kasun Wathsara Hapangama 提问时间:11/4/2023 最后编辑:chqrlieKasun Wathsara Hapangama 更新时间:11/4/2023 访问量:86
使用双变量类型而不是浮点数是一个坏习惯 [已关闭]
Is Using double variable type instead of float a bad habit [closed]
问:
我必须为我的大学考试编写 C 代码,并且我有声明变量而不是变量的练习。这是一个坏习惯吗?他们可以为此扣分吗?(我们从不超过限制)double
float
float
我认为使用比因为是字面意思更好,如果我们声明我们正在将 a 转换为 .double
float
0.71
double
float one = 1.1;
double
float
答:
在这个网站上的许多讨论中,参与者更喜欢 double 而不是 float,如果他们在提出的问题中看到 double
,建议用 double
替换 float
。
一般来说,当您需要浮点值/变量时,只需使用类型 double。默认情况下,表达式中使用的文字浮点值将被视为双精度值,
人们希望 Windows 桌面和服务器上的浮点计算在两种浮点类型之间是相同的。
在某些架构上,没有用于双打的专用硬件,...为您提供更差的吞吐量和两倍的延迟。在其他类型(例如 x86 FPU)上,两种类型都转换为相同的内部格式 80 位浮点,在 x86 的情况下),因此性能是相同的。
某些智能手机和嵌入式架构可能会从使用而不是 .float
double
使用 IEEE 754 时,为 32 位(24 位尾数,8 位指数)和 64 位(53 位尾数,11 位指数)。指数大小决定了每种类型的最大值(和最小值)。尾数大小决定了每种类型的最高精度。float
double
除非您有用于“窄”浮点计算的宏,否则大多数数学函数(包含 math.h 的类型)将返回 而不是 。像这样的 C++ 声明将声明一个称为 .三角函数、舍入函数和幂函数作为参数并返回。double
float
const auto cosine = cos(theta)
double
cosine
double
double
OpenGL 是一个例外,通常是首选,因为 API 处理浮点数。对于需要精度的图形计算,您可以自行计算并转换为 。float
double
float
我应该使用 double 还是 float? float 和 double 有什么区别?
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
您的问题需要基于意见的答案......让我们试着坚持事实:
我必须为我的大学考试编写 C 代码,并且我有声明变量而不是变量的练习。这是一个坏习惯吗?
double
float
一点也不。在现代系统的大多数情况下,计算速度并不明显慢于计算,并且提供更好的精度和更宽的领域。在特殊情况下,例如与视频游戏或神经网络的专用硬件接口,可能是更好甚至唯一的选择,但对于一般问题,似乎更可取。double
float
float
double
我认为使用比因为是字面意思更好,如果我们声明我们正在转换为 .
double
float
0.71
double
float one = 1.1;
double
float
你对此是绝对正确的。尽管转换应在编译时执行,但应编写声明以避免转换。另请注意,计算结果可能为 false。float one = 1.1F;
one == 1.1
他们可以为此扣分吗?
这取决于当地的惯例和纠正者的习惯或意见。你应该问他们期望什么,并口头捍卫你的观点。对于学生来说,违背老师的先入之见通常是一个坏主意,即使这些先入之见是无效的,尤其是在公共场合这样做。
评论
float
double
float
double
float