long和float区别void intfrac(float n,float &INT,float &FRAC){long temp=static_cast(n);INT=static_cast(temp);FRAC=n-INT;}这个函数谁能给我解释解释他的目的是输入3.14得到3和0.14为什么通过long和float之间的转换就能达

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 08:51:19
long和float区别void intfrac(float n,float &INT,float &FRAC){long temp=static_cast(n);INT=static_cast(temp);FRAC=n-INT;}这个函数谁能给我解释解释他的目的是输入3.14得到3和0.14为什么通过long和float之间的转换就能达
xTKOQ+$ShcwMӤI7]47VcbGc2hˈ4)?CoV 1J;v+MQ#Zvf^I*6/:?VôZ%C{0'uRWN;e/@h}<7?E<@{P }XR_c၏I>]) F9) C4FK&oAPwZM. 78hhAd Q0"UB[T:q"d?$RC/&xF` ¦&DigG%6>1۵<$h֭F(짉JrPȕ.0RuP=(/t} OGEFݖ3dDbjR szMMta*1mYhp Qm @I؀%Q.rz'fd+SQK%_2H@eqKoYjqز̰cs|(kwЉN0ǂ.N:=d3E-p!]R>N-)q~ʜɠh SstFA8nN1[u+(5[zI`o*a߄j YW!ƕ{] )Rcz

long和float区别void intfrac(float n,float &INT,float &FRAC){long temp=static_cast(n);INT=static_cast(temp);FRAC=n-INT;}这个函数谁能给我解释解释他的目的是输入3.14得到3和0.14为什么通过long和float之间的转换就能达
long和float区别
void intfrac(float n,float &INT,float &FRAC)
{
long temp=static_cast(n);
INT=static_cast(temp);
FRAC=n-INT;
}
这个函数谁能给我解释解释
他的目的是输入3.14得到3和0.14
为什么通过long和float之间的转换就能达到效果呢?
static_cast不是函数
他是一个语法

long和float区别void intfrac(float n,float &INT,float &FRAC){long temp=static_cast(n);INT=static_cast(temp);FRAC=n-INT;}这个函数谁能给我解释解释他的目的是输入3.14得到3和0.14为什么通过long和float之间的转换就能达
long就是长整型啊,可以理解为整数啦,位数比整型多一倍.float是浮点数啊.可以理解为小数啦.
首先这个:static_cast(表达式),表示强制类型转换,并且进行静态检查,就是在编译的时候检查啦.
函数参数里面的&表示引用,就是指这个变量是可以被赋值改变的.而n是传值的,不能改,只能用.
第一句类型转换,但不改变n本身的值,即temp=原来浮点数n的整数部分;把小数部分舍掉了.temp是long型的.
第二句把long型的temp附给函数参数里的INT;因为函数参数里INT是float的,所以再转一次附给INT;
第三局就是原来的那个n减去整数部分,得到小数部分啦.
这个函数写的真麻烦,其实直接
void intfrac(float n,long &INT,float &FRAC) //既然INT指整数,就用整型就好了
{
long temp=n; //隐式转换
INT=temp;
FRAC=n-INT;
}