gpt4 book ai didi

c++ - 实数 - 如何确定是否需要 float 或 double?

转载 作者:可可西里 更新时间:2023-11-01 16:02:31 28 4
gpt4 key购买 nike

给定一个真实值,我们能否检查 float 数据类型是否足以存储数字,或者是否需要 double

我知道精度因架构而异。是否有任何 C/C++ 函数可以确定正确的数据类型?

最佳答案

有关背景,请参阅 What Every Computer Scientist Should Know About Floating-Point Arithmetic

不幸的是,我认为没有任何方法可以自动做出决定。

通常,当人们用 float 而不是字符串表示数字时,其目的是使用数字进行算术运算。即使所有输入都以可接受的精度适合给定的浮点类型,您仍然必须考虑舍入误差和中间结果。

在实践中,大多数计算都将使用 64 位类型以足够的精度进行可用结果。许多计算仅使用 32 位将无法获得可用的结果。

在现代处理器中,总线和算术单元的宽度足以提供 32 位和 64 位浮点类似的性能。使用 32 位的主要动机是在存储非常大的数组时节省空间。

这导致了以下策略:

如果数组大到足以证明花费大量精力将其大小减半,请进行分析和实验以确定 32 位类型是否提供足够好的结果,如果可以,则使用它。否则,请使用 64 位类型。

关于c++ - 实数 - 如何确定是否需要 float 或 double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13620481/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com