c++中如何避免不同的数据类型(int,double,float)间转换的误差?
我在处理一套数据floatcost,tendered,change;intchange_in_cents;change=(tendered-cost);change_in...
我在处理一套数据
float cost, tendered, change;
int change_in_cents;
change = (tendered - cost);
change_in_cents = 100 * change;
可是我发现当数据稍微下一些的时候,比如change = 11.00 - 10.89时,change_in_cents成了10,产生了1的误差。
请问如何才能避免这样的误差呢 展开
float cost, tendered, change;
int change_in_cents;
change = (tendered - cost);
change_in_cents = 100 * change;
可是我发现当数据稍微下一些的时候,比如change = 11.00 - 10.89时,change_in_cents成了10,产生了1的误差。
请问如何才能避免这样的误差呢 展开
5个回答
展开全部
因为int型是没有小数点的,只有整数部分,你吧change_in_cents改成flaot型变量就行了,如果输出不想要小数部分,可以再转成int型输出
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在数据类型的误差允许范围内,唯一办法就是尽量用精度高的类型了,所以float换double吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将 100 变成 100.0 就行了
追问
还是不行。。。
追答
0.11 在二进制里的表示方式 你算算,就会发现 会丢失一个数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用强制类型转换可否?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询