求大神指导 Keil C下怎么进行浮点数的加减乘除操作?
时间:10-02
整理:3721RD
点击:
ad转换中常用到小数计算加减乘除,能否直接进行如下操作呢?
float Rt_caculate(uchar ad_num)
{
float m,n,s1,s2,floa_Rt;
n=0.00990099;
m=ad_num/255;
s1=1-n-0.01*m;
s2=1/s1-1;
double_Rt=10000*s1-5.203;
double_Rt=double_Rt*100;
return float_Rt;
}
注:ad_num从0~255
如果不行,那该怎么办呢?难道要得到小数部分只能用先*100再逐位取余的方法吗?实在搞不懂a !
求大神指导?C++中进行上述操作木有问题,Keil中难道就真的没法子吗?
float Rt_caculate(uchar ad_num)
{
float m,n,s1,s2,floa_Rt;
n=0.00990099;
m=ad_num/255;
s1=1-n-0.01*m;
s2=1/s1-1;
double_Rt=10000*s1-5.203;
double_Rt=double_Rt*100;
return float_Rt;
}
注:ad_num从0~255
如果不行,那该怎么办呢?难道要得到小数部分只能用先*100再逐位取余的方法吗?实在搞不懂a !
求大神指导?C++中进行上述操作木有问题,Keil中难道就真的没法子吗?
( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
并没有严格要求,只要数据单位在float内就好了,只是考虑到代码的执行效率问题。还有你的代码有问题,定义float_rt但是从未引用,最后却返回float_rt。
忘改了,代码中的倒数第二第三行都该把double_rt改成float_rt
看芯片支不支持吧
看你的cpu是否支持浮点数运算啊,一般都是不支持的.你把浮点数都弄成整形来计算呗.100就代表1.0就好了