注册 登录
编程论坛 C++教室

C++l里数据转化问题,求解答!!!

我有我梦 发布于 2013-06-04 22:08, 526 次点击
++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
    cout<<26/3+34%3+2.5<<endl;
    return 0;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++
为何会得出结论是:11.5.而不是12.1667;C++编译系统不是将数据转换成double型数据吗?并且系统默认应该是
六位啊!
6 回复
#2
yuccn2013-06-04 22:20
26/3+34%3 这部分被整形化了,也就是说这串的没短只是取整了而已,到最后+2.5的时候才被转换成小数类型
#3
雪狼633812013-06-04 23:35
求余%只用于整形,该数据被整形化。
#4
sslworld19882013-06-05 10:11
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
   
    cout<<"第一次:"<<26/3<<endl;
    cout<<"第二次:"<<34%3<<endl;
    cout<<"第三次:"<<26/3+34%3<<endl;
    cout<<"第四次:"<<26/3+34%3+2.5<<endl;
    return 0;
}
就像楼上所说的一样;
结果为:
第一次:8
第二次:1
第三次:9
第四次:11.5

#5
ydown2013-06-05 10:38
程序代码:
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
    cout<<26/3.0+34%3+2.5<<endl;
    return 0;
}

将 26/3 改成: 26/3.0
#6
我有我梦2013-06-05 14:05
谢了谢了,以后还请多多指教!!!!
#7
子楠2013-06-05 17:42
恩恩
1