使用双变量类型而不是浮点数是一个坏习惯

问题描述 投票:0回答:1

我必须为大学考试编写 C 代码,并且我有声明双变量而不是浮点变量的练习。这是一个坏习惯吗?他们可以扣分吗? (我们永远不会超过浮动限制)

我认为使用

double
float
更好,因为“0.71”不是双精度文字,如果我们确实 float one = “1.1”;我们正在将双精度转换为浮点。

c types double conventions
1个回答
0
投票

在本网站的大量讨论中,参与者更喜欢

double
而不是
float
,并且如果他们在提出的问题中看到它,建议将
float
替换为
double

一般来说,当您需要浮点值/变量时,只需使用 double 类型。默认情况下,表达式中使用的文字浮点值将被视为双精度,

人们期望 Windows 桌面和服务器上的浮点计算两种浮点类型之间是相同的

在某些架构上,没有用于双打的专用硬件,...给您带来更差的吞吐量和两倍的延迟。在其他系统上(例如 x86 FPU),两种类型都转换为相同的内部格式 80 位浮点(对于 x86),因此性能是相同的。

某些智能手机和嵌入式架构可能会通过使用

float
而不是
double
获得性能优势。

对于 IEEE 754

float
32 位(24 位尾数,8 位指数),
double
64 位(53 位尾数,11 位指数)。指数大小决定每种类型的最大值(和最小值)。尾数大小决定每种类型的最大精度级别。

除非您有用于“窄”浮点计算的宏,否则大多数数学函数(包含 math.h 的类型)都会返回

double
而不是
float
。像
const auto cosine = cos(theta)
这样的 C++ 声明将声明一个名为
double
cosine
。三角函数、舍入函数和指数函数以
double
作为参数并返回
double

OpenGL 是一个例外,其中

float
通常是首选,因为 API 处理浮点数。对于需要精度的图形计算,您可以使用
double
进行自己的计算,然后向下转换为
float

我应该使用双精度型还是浮点型? float 和 double 有什么区别?

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

© www.soinside.com 2019 - 2024. All rights reserved.