为了账号安全,请及时绑定邮箱和手机立即绑定

请问我该怎样才能使输出的结果可以是小数?求

请问我该怎样才能使输出的结果可以是小数?求

C
LEATH 2023-03-07 17:13:49
char deshu3[20];long deshu2;deshu2=atoi(chucun1)/atoi(chucun2);//chucun1,chucun2为成员函数;_itoa(deshu2,deshu3,10);SetDlgItemText(IDC_deshu,deshu3);
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

你的代码有两个问题:
1.由于atoi(chucun1)和atoi(chucun2)的结果都是int型,所以它们中间的"/"便是“取整除”,比如5/2的结果只会是2而不会是2.5。解决办法较简单,在atoi(chucun1)前加一个"1.0*",使整个表达式成为1.0*atoi(chucun1)/atoi(chucun2)。这样,表达式中的int型变量就都会自动上升到浮点型数据参与这次运算,"/"也由“取整除”自动变成了“浮点除”,你的问题就解决了。
2._itoa这个函数是把int型变量转换为字符串的,它不能胜任把浮点数转换成字符串,要用gcvt()函数。把_itoa(deshu2,deshu3,10)一句改为gcvt(deshu2,10,deshu3)就可以把浮点数deshu2变为字符串存入以deshu3为指针的内存中。中间的那个10不是进制,是转换后的十进制数的长度,你可根据需要填写。gcvt函数的形参与代码中的变量类型可能不一致,要注意调整一下……

查看完整回答
反对 回复 2023-03-10
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信