整型数据相加,结果可以为浮点型吗?

结果一定正确吗?(听说浮点数不准)浮点位数足够... 结果一定正确吗?(听说浮点数不准) 浮点位数足够 展开
 我来答
初琴90
2013-01-22 · 超过10用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:20.2万
展开全部
整型数据相加,系统默认为整型
int a,b,c;
c=a+b;
若int a,b;
float c;
c=a+b;则会产生错误,但visual 6.0 C++系统会给予warning,这种错误会忽略

可以通过强制类型转换符将整型数据相加结果转换为浮点型
Int a,b;
(float)(a+b);

如果是将整型数据相加结果转换为浮点型的话,结果是一定准确的,而且精确到小数点后6位,
②为什么说浮点数不准?
这是因为有效位数的问题,如果用很大的浮点数加上一个很小的浮点数,那么会产生大数吃小数的误差,所以不准
例如:
#include <stdio.h>
void main()
{
float a,b;
a=123456.789e5;
b=a+20;
printf("%f\n",b);
}
结果本应该为12345678920,但由于一个浮点数只能保证有效数字7位,后面的无意义,所以编译后输出可能为:12345678848.000000
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
_whales
2013-01-28 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:507万
展开全部
整型数据的尺寸有限,乘除较多的话,很快就溢出了!
浮点加减,对差别很大的数据,会造成精度丢失,各有利弊,看你需要使用;如果都不满足要求的话,自己定义一个合适的类型,就可以了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式