需要转换一下
lezjin 发表于 2024-4-10 15:24
数据类型问题,%不能用于浮点数,
什么意思
hbsuntt 发表于 2024-4-10 22:27
需要转换一下
怎么转换,详细说一下,我以前这样使用过,可以但不知现在不行 temp=temp/1.17;
temp除以一个小数,会转换为浮点型,浮点型不能%运算,你可以把1。17改成一个整数比如2,试一下。 本帖最后由 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是整型的,通过 整型=浮点型,应该已经转换成整型的了
dongfang 发表于 2024-4-12 12:51
temp=temp/1.17;
if(temp
temp/1.7变成浮点型,但temp是整型的, 按照我的记忆,应该不是这样的。
temp/1.7————temp会隐式转换成浮点型,按照上面你的强制转换一下,应该是可以了,你试下。
另外if 里边的判断应该也是浮点和整型比较,不够严谨。 本帖最后由 浦江一水 于 2024-4-13 08:49 编辑
原程序基本不要动...
把temp定义为长整型数类型... unsigned long(因根据后面实例源码看,temp计算过程中,有可能超65535 )
将这句: temp=temp/1.17;
改写为: temp=(100*temp)/(100*1.17);
试试看...如何...? unsigned long temp1;
if(temp<=7000)
{
temp1=temp*100/117;
qian=temp1/1000;
bai=temp1%1000/100;
shi=temp1%100/10;
ge=temp1%10;
} hbsuntt 发表于 2024-4-12 21:16
unsigned long temp1;
if(temp
{:5_332:}{:5_323:} 浦江一水 发表于 2024-4-12 15:18
原程序基本不要动...
把temp定义为长整型数类型... unsigned long(因根据后面实例源码看,temp计算过程中, ...
{:5_332:}{:5_332:}
页:
1
[2]