C 转换浮点值
我试图让程序打印出浮点值。我试过放%f,它给了我相同的数字,但最后是0。在我的函数定义中,我试图将temp设置为double,但它一直说表达式必须具有整数类型C 转换浮点值,c,floating-point,modulo,C,Floating Point,Modulo,我试图让程序打印出浮点值。我试过放%f,它给了我相同的数字,但最后是0。在我的函数定义中,我试图将temp设置为double,但它一直说表达式必须具有整数类型 #include <stdio.h> int modifyIntegral(); int main() { int value; value = modifyIntegral(); printf("The Updated value : %d\n", value); } int mod
#include <stdio.h>
int modifyIntegral();
int main() {
int value;
value = modifyIntegral();
printf("The Updated value : %d\n", value);
}
int modifyIntegral() {
double value;
double temp;
scanf_s("%d", &value);
temp = (value < 0) ? -value : value;
if (temp % 10 > temp / 100 % 10) {
temp += -temp % 10 + temp / 100 % 10;
}
else {
temp += 100 * (temp % 10 - temp / 100 % 10);
}
return (value < 0) ? -temp : temp;
}
不能在双精度上使用模数%运算符。程序中存在许多问题 首先,%是一个整数运算符,所以不能在浮点类型上使用它。改用。但是,如果不删除小数部分,就无法通过这样获得模10来获得浮点值的位数 第二,将值声明为double,然后将其读取为int
scanf_s("%d", &value);
这将导致未定义的行为
我不明白你需要转换什么?像您这样的操作可以在整数中完成,也应该在整数中完成