gpt4 book ai didi

c# - 将 double 转换为没有 Infinity 的 float

转载 作者:IT王子 更新时间:2023-10-29 04:14:19 24 4
gpt4 key购买 nike

我正在使用旧的 float myFloat = (float)myDouble 将 double 转换为 float。

然而,这有时会导致“无穷大”,这对我正在进行的进一步处理不利。我可以接受损失,只要它指向原始数字的大体方向(必须保持我正在转换的所有数字的相对数字“强度”)。

如何将 float 转换为 double 并避免 Infinity?

背景:
我正在从 wav/mic 读取字节流,将其转换为 float,将其转换为 double,通过 FFT 计算运行它(这需要 double),现在我希望它返回到 float(将数据存储在 32 位图像容器中)。

最佳答案

因此,如果该值大于 float.MaxValue,您是否乐意它只是 float.MaxValue?这将有效地“剪辑”这些值。如果没关系,这相当容易:

float result = (float) input;
if (float.IsPositiveInfinity(result))
{
result = float.MaxValue;
} else if (float.IsNegativeInfinity(result))
{
result = float.MinValue;
}

关于c# - 将 double 转换为没有 Infinity 的 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640742/

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