7-09 12,569PVs
今天出了一个错误,在代码中把int型的数据强制转换位float类型,导致数值精度丢失,具体就是多了1,这与计算机的运行原理有关。float类型是符号加数值,int型只有数值。大部分的情况,int可以成功转为float,但是,存在一些情况,转换后数值多了1。
就是这么一个简单的错误,导致所有得到的数据几乎是不能用的,于是只能重新跑一遍数据。
如果要做int转换,建议将其转变位double,这样就不会造成任何的数据失真。
7-09 12,569PVs
今天出了一个错误,在代码中把int型的数据强制转换位float类型,导致数值精度丢失,具体就是多了1,这与计算机的运行原理有关。float类型是符号加数值,int型只有数值。大部分的情况,int可以成功转为float,但是,存在一些情况,转换后数值多了1。
就是这么一个简单的错误,导致所有得到的数据几乎是不能用的,于是只能重新跑一遍数据。
如果要做int转换,建议将其转变位double,这样就不会造成任何的数据失真。
什么语言的?
C语言的
不大于 2 ^ 24 – 1 的 int 可以转成 float。
一看你就是专业的,膜拜~~
拜读一下,哈哈
哈哈,欢迎讨论
我认识了一个 double 😀
哈哈,不错~
谢谢夸奖····
我一直以为是float转Int才会有精度缺失,没想到Int转float也会有
恩恩,我也是实际测试的时候发现的这个问题。
C语言,已经都还给老师了。。
C是基础呀~~哈哈
感谢博主的分享,我以后在编写程序时 以避免类似的错误了
随着写代码的行数累积,小错误会越来越少,不过最好的还是不要写代码,呼呼~
最好别做程序员。。。
C里面的指针是永远的痛,所以毅然选择Java,呵呵
各有利弊,呵呵
无法评论是什么鬼?
第一次留言需要审核,以后就好了
好久不更新了啊
是我变懒散了,哎