1. c語言怎麼對浮點型的數求余
這樣:
float a=3.14 ,b=3;
int c;
a*=100;
b*=100;
c=(int)a%(int)b;
a=(float)c/100;
%只能用於整形,不能用於浮點,如果浮點定義,必然報錯,結果應該是0,不可能是0.14,int=3.14系統默認為3 3%3=0,想得到0.14可以藉助系統函數。
(1)c語言浮點數求余擴展閱讀:
注意事項
% 只用於整型的計算,後一個數不能是0,參與運算的數據可正可負。
對於x%y ,計算之後結果的正負與 x 的符號相同,如果前者是較小的數,後者是較大的數,那麼,結果直接為較小的數。例如:
10%3=1
3%10=3
10%-3=1
-3%10=-3
-10%-3=-1
-3%-10=-3
3%13=3
0%3=0
0%-3=0
3%0 (×)Error!
-3%0 (×)Error!
10.0%3.0 (×)Error! // 浮點型不能進行模運算
2. C語言中帶小數點怎麼求余
摘要 在C語言中,浮點數是不能進行求余操作的。
3. c語言中,浮點數可以進行取余運算嗎
在c中,浮點是不能直接進行位運算的,因為也沒有必要(你可以參考下它在計算機中的格式ieee-754)當然,它在內存中也是以二進制方式存儲的,所以理論上可以對它進行位運算如對一個浮點的最高位置0(也就是將它的符號位置0),使它從負數變為正數,可以這樣#include
int
main(){
float
x=-1.23;
unsigned
int
*y=(int
*)&x;
printf("%f\n",x);
//原值
*y&=0x7fffffff;
printf("%f\n",x);
//新值
}
4. C語言浮點型數據能不能取余
C語言浮點型數據不能取余。
一個浮點型的數據,轉化成整形數據後可以通過除法與取余來獲得其個位、十位、百位。先把它強制轉換成int型,然後取余 %是可行的。
例如浮點型數據521.63,轉化成整形後是521,對10取余可以獲取個位數1,對100取余再除以10取整可以獲得十位數2,除以100取整可以獲得百位數5。
(4)c語言浮點數求余擴展閱讀:
取余運算的運算律:
1、(a + b) % p = (a % p + b % p) % p
2、(a - b) % p = (a % p - b % p) % p
3、(a * b) % p = (a % p * b % p) % p
4、a ^ b % p = ((a % p)^b) % p
5、((a+b) % p + c) % p = (a + (b+c) % p) % p (5)
6、((a*b) % p * c)% p = (a * (b*c) % p) % p (6)
7、(a + b) % p = (b+a) % p
8、(a * b) % p = (b * a) % p
9、(a+b) % p = ( a % p + b % p ) % p
10、((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p
5. C語言的求余運算符能否用於浮點數如果用於浮點數會有什麼結果(能否達到目的)
不能,浮點數沒有餘數概念
6. C語言中怎樣用浮點型求余
由於c中提供的取模(%)是用來求兩個整數相除的余數,所以不存在一個整數使用%對浮點數取余數,系統編譯不過。要計算一個整數對浮點數取余數,可以使用fmod函數,代碼如下,
#include
#include
//輸出4對0.3取余的結果
int
main(int
argc,
char
*argv[])
{
printf("%d\n",7%1/2);//由於%和/優先順序相同,從左向右執行,7%1為0,0/2為0
printf("%lf\n",fmod(4,0.3));//輸出0.100000
return
0;
}
double
fmod(
double
x,
double
y
);函數返回參數x/y的余數,需要添加math.h頭文件。
7. c語言中,怎樣使用取余數的函數
C語言提供了一個取余數的運算符%,稱之為「模」運算符,只有兩個整數之間才可以進行模運算。
a % b 表示 用b來整除a,商整數,得到余數。
如:
5%3 = 2
4%3 =1
3%3 =0
(7)c語言浮點數求余擴展閱讀:
數學函數
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回x^y的值
doublepow10(int p) 返回10^p的值
double sqrt(double x) 返回+√x的值
double acos(double x) 返回x的反餘弦cos-1(x)值,x為弧度
double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度
double atan(double x) 返回x的反正切tan-1(x)值,x為弧度
double atoi(char *nptr) 將字元串nptr轉換成整數並返回這個整數
double atol(char *nptr) 將字元串nptr轉換成長整數並返回這個整數
char *ecvt(double value,int ndigit,int *decpt,int *sign),將浮點數value轉換成字元串並返回該字元串
char *fcvt(double value,int ndigit,int *decpt,int *sign),將浮點數value轉換成字元串並返回該字元串
8. c語言中浮點數據參與取余運算有語法錯誤嗎
c語言中浮點數據參與取余運算是有語法錯誤的,這樣的代碼會在編譯時發現出錯而不能通過編譯的。參與取余運算的兩個數都必須是整數。