猿问

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

char deshu3[20];
long deshu2;
deshu2=atoi(chucun1)/atoi(chucun2);
//chucun1,chucun2为成员函数;
_itoa(deshu2,deshu3,10);
SetDlgItemText(IDC_deshu,deshu3);

LEATH
浏览 85回答 1
1回答

BIG阳

你的代码有两个问题: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函数的形参与代码中的变量类型可能不一致,要注意调整一下……
随时随地看视频慕课网APP
我要回答