gpt4 book ai didi

c - 使 C float 精确?

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:33 28 4
gpt4 key购买 nike

在 C 中,当设置了一个 float 时,

int main(int argc, char *argv[]) {
float temp = 98.6f;
printf("%f\n", temp);
return 0;
}

它似乎总是会出现某种舍入错误,

98.599998

但是当我让它更精确时,

float temp = 96.600000f;

它仍然打印不同的数字。这应该如何解决?

最佳答案

It still prints a different number. How is this supposed to be solved?

如果您想要精确的小数值,可以使用不同的数据类型。

二进制 float 精确的——只是它们是精确的二进制值。

例如,如果您想表示以 3 为基数的数字,十进制也是不精确的。没有精确的二进制表示 0.1 的十进制数,就像没有精确的十进制表示“三分之一”一样。

这完全取决于您的要求是什么,并使用与其相匹配的数据类型。对于精确的十进制值,您可能最好使用第三方库……或者保留一个您知道在逻辑上按 100、10,000 或其他任何比例缩放的整数。

关于c - 使 C float 精确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17733835/

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