小白教程

 找回密码
 立即注册
查看: 6607|回复: 3

[已解决]C语言问题:为什么两次的b输出不一样?求解

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-4-15 19:22:48 | 显示全部楼层 |阅读模式


最佳答案
2021-5-19 19:12:40
如果是精度问题,那么一开始精度就丢失了,把丢失精度后的信息保存在b的内存里,之后b的内存没再变化(此时已经不存在精度问题)。所以即使精度丢失,因为b的内存信息没有再发生变化,所以两次打印的都是b的内存信息,而b的内存信息都是一样的,按理打印结果应该一样。如果不一样,只能怀疑是打印格式了,估计是b内存的二进制信息又做了什么转换才打印,导致两次转换结果不一样。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-4-17 23:37:52 | 显示全部楼层
定义float而float有效数字(精度)只为7位,也就是说在1234567后面的几位数字已经不准确,把float改成double就好咯
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-2 07:10:33 | 显示全部楼层
精确度的问题吧,改个更高精度的数据类型应该就可以了
回复

使用道具 举报

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-5-19 19:12:40 | 显示全部楼层 &
如果是精度问题,那么一开始精度就丢失了,把丢失精度后的信息保存在b的内存里,之后b的内存没再变化(此时已经不存在精度问题)。所以即使精度丢失,因为b的内存信息没有再发生变化,所以两次打印的都是b的内存信息,而b的内存信息都是一样的,按理打印结果应该一样。如果不一样,只能怀疑是打印格式了,估计是b内存的二进制信息又做了什么转换才打印,导致两次转换结果不一样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 12:37 , Processed in 0.058772 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表