浮點數據不能直接求餘數[Error] invalid operands of types 'double' and 'double' to binary 'operator%'


原諒我基礎沒學好
今天在做題的時候要用到求餘數,因爲之前一直都是整數求餘數,可以用%來運算。這次我覺得也可以直接算,我一試,發現我太天真了
!!!
代碼如下------------------------------------

#include<stdio.h>
int main()
{
	double a;
	a=11.1%1.0;
	printf("a=%f",a);
	return 0;
}

結果就是報錯了

標題[Error] invalid operands of types ‘double’ and ‘double’ to binary ‘operator%’

翻譯如下:類型“double”和“double”到二進制“操作符%”的無效操作數

我就非常納悶吶
然後就查
重點來了

%號取餘數一般用於整型之間即–>整型%整型=整型
所以對於浮點型數的求餘數目前不能直接用一個符號來實現

如果懶得算的話,也不是沒有快速算法
可以通過調用函數來直接實現

fmodf用於float型變量操作

fmod用於double型變量操作

modl用於long double型變量操作

以下以fmod舉例


//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "math.h"
int main(void){
    double f=3.3,q=2.2;
    printf("%f\n",fmod(f,q));
    return 0;
}

不過一般做題的時候不建議調用函數,還是自己老老實實算算吧 >-<

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章