hbsuntt 发表于 2024-4-10 22:27:46

本帖最后由 hbsuntt 于 2024-4-10 22:30 编辑

需要转换一下

dongfang 发表于 2024-4-11 14:39:34

lezjin 发表于 2024-4-10 15:24
数据类型问题,%不能用于浮点数,

什么意思

dongfang 发表于 2024-4-11 14:43:00

hbsuntt 发表于 2024-4-10 22:27
需要转换一下

怎么转换,详细说一下,我以前这样使用过,可以但不知现在不行

lezjin 发表于 2024-4-12 07:56:57

temp=temp/1.17;      
temp除以一个小数,会转换为浮点型,浮点型不能%运算,你可以把1。17改成一个整数比如2,试一下。

dongfang 发表于 2024-4-12 12:51:01

本帖最后由 dongfang 于 2024-4-12 13:12 编辑

lezjin 发表于 2024-4-12 07:56
temp=temp/1.17;      
temp除以一个小数,会转换为浮点型,浮点型不能%运算,你可以把1。17改成一个整 ...
   temp=temp/1.17;      
                if(temp<=7000)
                              {      

                                        temp1=(unsigned int)temp;
                                        qian=temp1/1000;
                                        bai=temp1%1000/100;
                                        shi=temp1%100/10;      
                                        ge=temp1%10;
                         }
这样转换一下应该可以了吗
我的理解temp/1.7变成浮点型,但temp是整型的,通过 整型=浮点型,应该已经转换成整型的了


lezjin 发表于 2024-4-12 14:10:12

dongfang 发表于 2024-4-12 12:51
temp=temp/1.17;      
                if(temp

temp/1.7变成浮点型,但temp是整型的,   按照我的记忆,应该不是这样的。

temp/1.7————temp会隐式转换成浮点型,按照上面你的强制转换一下,应该是可以了,你试下。

另外if 里边的判断应该也是浮点和整型比较,不够严谨。

浦江一水 发表于 2024-4-12 15:18:20

本帖最后由 浦江一水 于 2024-4-13 08:49 编辑

原程序基本不要动...
把temp定义为长整型数类型... unsigned long(因根据后面实例源码看,temp计算过程中,有可能超65535 )
将这句:   temp=temp/1.17;
改写为:   temp=(100*temp)/(100*1.17);
试试看...如何...?

hbsuntt 发表于 2024-4-12 21:16:19

unsigned long temp1;
if(temp<=7000)
{
temp1=temp*100/117;
qian=temp1/1000;
bai=temp1%1000/100;
   shi=temp1%100/10;
ge=temp1%10;
                         }

dongfang 发表于 2024-4-13 19:38:44

hbsuntt 发表于 2024-4-12 21:16
unsigned long temp1;
if(temp

{:5_332:}{:5_323:}

dongfang 发表于 2024-4-13 19:39:19

浦江一水 发表于 2024-4-12 15:18
原程序基本不要动...
把temp定义为长整型数类型... unsigned long(因根据后面实例源码看,temp计算过程中, ...

{:5_332:}{:5_332:}
页: 1 [2]
查看完整版本: 求教关于c51数值计算的问题,求高人指教