2016-05-01 34 views
-1

我在C++下面 begginner是我的代碼,我使用FMOD(),其中k的值應該是0.23,但它給它0FMOD()不給預期的答案

#include<iostream> 
#include<cmath> 
using namespace std; 
int main() 
{ 
int k; 
k=fmod(234.23,3); 
cout<<"k="<<k<<endl; 
return 0; 
} 

我正在使用codeblock。

這是編譯器問題嗎?

+1

請使用float不是int的用於打印正確的值 – piyushj

+3

作爲初學者,你是否認爲你很幸運發現編譯器的問題? –

+1

'int'不能代表'0.23'。你需要一個'float'或'double'值類型。 –

回答

1

您正在將結果分配給類型爲int的變量,而int其本質上只能表示整數。

您需要使用浮點類型,例如floatdouble

1

對於k,您必須使用float而不是int。整數只能包含精確的數字,但不能包含分數。爲此使用,浮動或雙。

0

C++是一種強類型語言。

fmod(234.23, 3)結果是0.23,但您使用的int來存儲它,所以0.23轉換爲整數0

你應該聲明爲float k;