gpt4 book ai didi

c - 如何防止 float/double 格式说明符自动更改 C 中的小数值?

转载 作者:行者123 更新时间:2023-11-30 20:27:34 24 4
gpt4 key购买 nike

我有一个奇怪的问题,如果我输入 720.60 到

sscanf("%f", &amount);

如果 amount 的类型为 float,变量中的值将更改为 720.59967。

我怎样才能绕过这个并防止它改变我的值?

最佳答案

您可以打印更少的数字,或使用double。一个single precision IEEE-754 float value 有一个 23 位尾数,这意味着它有大约 7 个十进制数字的精度。您看到的值是尽可能接近的:没有比 720.59967 更接近 720.60 的 float 值。

事实上,最接近 720.60 的两个 float 值的精确值为:

720.5999755859375      (slightly less than 720.60)
720.60003662109375 (slightly more than 720.60)

关于c - 如何防止 float/double 格式说明符自动更改 C 中的小数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781472/

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