#include<iostream>
using namespace std;
float main()
{
cout<<"该程序用于计算已知半径的球的表面积和体积"<<endl;
cout<<"请输入球的半径"<<endl;
const float pai=3.1415926;
const float a=0.75;
float R;
cin>>"球的半径=">>R>>endl;
float V;
V=a*pai*R*R*R;
float S;
S=4*pai*R*R;
cout<<"球的体积="<<V<<endl;
cout<<"球的表面积="<<S<<endl;
return 0;
}
编译时提示这个error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
和warning C4305: 'initializing' : truncation from 'const double' to 'const float'。。。分别是啥意思。。。
float 和double区别不是只在于范围么?隐式转换什么的是啥意思= =。。再通俗点解释下呗。。
追答你的老师应该给你讲过,float和double类型的区别:
float存储数据占四个字节,有效数据6-7位
double存储数据占八个字节,有效数据15-16位
即:double表示的数据精确度比float高。
众所周知,计算机中存储的数据都是以二进制存储的。小数在存储在计算机中时,转换成二进制时,不一定能精确转换,如:0.3转换成二进制为:0.0100110011....是个循环二进制数。存储到double中的循环数据要多于float中,因此,double精度高。
而计算机中不同类型的数据在进行运算赋值时,因变量的不同,系统会自动截短数据,你想,把一个大象放到冰箱里,装不下怎么办?只好处理一下,能放多少放多少啊,这就是隐式转换。