C++中如何判断输入的字符是float还是int型

若输入的是2.0和3,算其积。。2.0*3=6.0而不是6该怎么实现???求解我意思是如何判断出所输入的是float型或int型使得结果是与所输入字符类型一样都是Int型... 若输入的是2.0和3,算其积。。2.0*3=6.0 而不是6 该怎么实现???求解
我意思是 如何判断出所输入的是float型或int型 使得结果是与所输入字符类型一样 都是Int型则输出int型 若有float型 则输入float型
展开
 我来答
风若远去何人留
推荐于2017-09-24 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

如果直接以cin>>方式,输入到float或者int变量中,无法判断类型。

要判断输入的类型,只能以字符串方式输入。然后判断字符串中的字符类型。

如果存在小数点,则代表是浮点数,否则为整型

代码如下:

int main()
{
    char s[200];
    cin >> s;
    int i;
    for(i = 0; s[i]; i ++)
        if(s[i] == '.') break;
    if(s[i]) cout << "float"<<endl;
    else cout << "int"<<endl;
}
haiyangfenghuo
2014-10-31 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:801万
展开全部

强制转换,用 (int)2.0*3就是6了。

给你一个强悍的

追问
不确定输入的是不是float型  使得结果是与所输入字符类型一样  都是Int型则输出int型 若有float型  则输入float型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-31
展开全部
看接收变量的类型,接收变量是float,那输入的就是float,接受变量是int那么就是int型。
你2* 3 = 6,计算的时候为了保证获取float型,整数形式加上个.0就可以了,如2.0 * f,如果不是运行中可能退化成int型的计算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_0x1F1E5E10
2014-10-31 · TA获得超过295个赞
知道小有建树答主
回答量:293
采纳率:50%
帮助的人:311万
展开全部
统一用字符串读取输入 ,你自己再去分析字符串去..........
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-31
展开全部
直接用ceil或者floor函数取整,反正是整数,不会有影响的
追问
但我想更精确些
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式