找回密码
 立即注册
楼主: dongfang

求教关于c51数值计算的问题,求高人指教

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:171
  • 最近打卡:2025-04-30 08:31:08

0

主题

7

回帖

246

积分

中级会员

积分
246
发表于 2024-4-10 22:27:46 | 显示全部楼层
本帖最后由 hbsuntt 于 2024-4-10 22:30 编辑

需要转换一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-04-10 06:42:19

19

主题

39

回帖

373

积分

中级会员

积分
373
发表于 2024-4-11 14:39:34 | 显示全部楼层
lez*** 发表于 2024-4-10 15:24
数据类型问题,%不能用于浮点数,

什么意思
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-04-10 06:42:19

19

主题

39

回帖

373

积分

中级会员

积分
373
发表于 2024-4-11 14:43:00 | 显示全部楼层

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-4-12 07:56:57 | 显示全部楼层
temp=temp/1.17;      
temp除以一个小数,会转换为浮点型,浮点型不能%运算,你可以把1。17改成一个整数比如2,试一下。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-04-10 06:42:19

19

主题

39

回帖

373

积分

中级会员

积分
373
发表于 2024-4-12 12:51:01 | 显示全部楼层
本帖最后由 dongfang 于 2024-4-12 13:12 编辑
lez*** 发表于 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是整型的,通过 整型=浮点型,应该已经转换成整型的了


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-4-12 14:10:12 | 显示全部楼层
dong*** 发表于 2024-4-12 12:51
temp=temp/1.17;        
                if(temp

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:495
  • 最近打卡:2025-05-03 07:45:19

30

主题

347

回帖

3484

积分

荣誉版主

积分
3484
发表于 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);
试试看...如何...?
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:171
  • 最近打卡:2025-04-30 08:31:08

0

主题

7

回帖

246

积分

中级会员

积分
246
发表于 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;
                         }
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-04-10 06:42:19

19

主题

39

回帖

373

积分

中级会员

积分
373
发表于 2024-4-13 19:38:44 | 显示全部楼层
hbsu*** 发表于 2024-4-12 21:16
unsigned long temp1;
if(temp

{:5_332:}{:5_323:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-04-10 06:42:19

19

主题

39

回帖

373

积分

中级会员

积分
373
发表于 2024-4-13 19:39:19 | 显示全部楼层
浦江*** 发表于 2024-4-12 15:18
原程序基本不要动...
把temp定义为长整型数类型... unsigned long  (因根据后面实例源码看,temp计算过程中, ...

{:5_332:}{:5_332:}
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 22:15 , Processed in 0.181969 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表