【火山避坑指南】整数相除会丢失精度,不返回小数部分。
一、常见的整数除法计算
问:1除以5等于几?
答:0.2
以上的除法运算的结果,相信上接受过九年义务教育的朋友,都知道正确答案是0.2;现在根据以上问题,用代码来实现:
1、易语言
2、火山
我们可以发现易语言成功返回了我们的理想结果;而火山却丢失了精度,仅返回了整数部分的结果。
从易语言转火山过来的我,首次碰到这个整数除法问题,着实有点懵;经过查询,有位朋友是这么给出回复的:
大多数语言. 两个整数的话就是用整数进行计算.速度才快. 也不会出现精度问题
火山的就是VC编译的. 自然也继承下来了. 我们在C++写的时候需要用小数了.. 也是要写成 4/5.0
像易语言那样转 全转双精度小数. 计算才有问题.. 经常出现精度问题. 让很多人都头疼.. 算式不敢写一成一排..得一排计算一次存到变量一次.. 不然结果容易有问题的...
二、解决办法
在火山里,立即数表达式计算过程中会出现数值精度丢失的现象(其实在我们编译的时候也会有警告提醒的),这是正常的,要声明一下小数,或者其中一个是小数。
二、总结
从易转火山的朋友,在进行除法计算的时候,要注意这个精度丢失问题;否则你的计算结果可能和你预想的就有点远哦。
易语言的算数运算 是把数据 先转换成 双精度小数所以 不需要我们自己强制转换类型
火山的自由度更高,需要我们自己强转类型了 {:3_41:}
页:
[1]