C语言 使用double变量类型而不是float是一个坏习惯吗[关闭]

dfuffjeb  于 10个月前  发布在  其他
关注(0)|答案(2)|浏览(106)

已关闭。此问题为opinion-based。目前不接受回答。
**要改进此问题吗?**更新此问题,以便editing this post可以使用事实和引文来回答。

9天前关闭
Improve this question
我必须为我的大学考试编写C代码,我有声明double变量而不是float变量的实践。这是一个坏习惯吗?他们可以为此扣分吗?(我们从来没有超过float限制)
我认为使用double比使用float更好,因为0.71是一个double文本,如果我们声明float one = 1.1;,我们将把double转换为float

4ioopgfo

4ioopgfo1#

在这个网站上的许多讨论中,参与者prefer double over floatrecommend replacing float with double如果他们在提出的问题中看到它。
一般来说,当你需要一个浮点值/变量时,只需要使用double类型。表达式中使用的文字浮点值默认情况下会被视为double,
人们希望Windows桌面和服务器上的浮点计算是identical between the two floating-point types
在某些架构上,没有专门的硬件用于double,.给你一个更差的吞吐量和两倍的延迟。在其他架构上(例如x86 FPU),两种类型都转换为相同的内部格式(80位浮点,在x86的情况下),所以性能是相同的。
某些smartphone和嵌入式架构可能会从使用float而不是double获得性能优势。
对于IEEE 754float32 bit(24位尾数,8位指数),double64 bit(53位尾数,11位指数)。指数大小决定了每种类型的最大(和最小)值。尾数大小决定了每种类型的最大精度级别。
除非您有一个用于“狭义”浮点计算的宏,否则大多数数学函数(对于包含math.h的类型)返回double而不是float。像const auto cosine = cos(theta)这样的C++声明将声明一个名为cosinedouble。三角函数,舍入和取幂函数将double作为参数并返回double
OpenGL是一个例外,因为API处理浮点数,所以float通常是首选。对于需要精度的图形计算,您可以使用double进行自己的计算并向下转换为float
Should I use double or float?What is the difference between float and double?
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

ldxq2e6h

ldxq2e6h2#

你的问题需要基于观点的答案...让我们试着坚持事实:
我必须为我的大学考试编写C代码,我有声明double变量而不是float变量的习惯,这是一个坏习惯吗?
在现代系统的大多数情况下,double计算并不比float计算慢,并且提供更好的精度和更宽的域。在特殊情况下,例如与视频游戏或神经网络的专用硬件接口,float可能是更好甚至是唯一的选择,但对于一般问题,double似乎更可取。
我认为使用doublefloat更好,因为0.71double的字面量,如果我们声明float one = 1.1;,我们将把double转换为float
你在这一点上是完全正确的。声明应该写为float one = 1.1F;以避免转换,尽管转换应该在编译时执行。还要注意,one == 1.1可能会计算为false。
他们能因此扣分吗?
这取决于当地的习俗和纠正者的习惯或观点。你应该问他们他们期望什么,并口头为你的观点辩护。学生违背老师的先入之见通常是个坏主意,即使这些先入之见是无效的,尤其是在公共场合这样做。

相关问题