2014-04-14 29 views
0

我試着做以下幾點:科C#Unpexpected結果

Math.Log10(11/10); 

預期的答案0.04139268515822504075019997124302

C#的答案0.0

真是奇怪!我在尋找日誌時丟失了什麼?需要幫助

+8

'11/10因爲'11'和'10'是'int's的= 1'。使用'11.0'和'10.0'。 – Dmitry

+0

使用'Math.Log10(11.0/10);'或使用'Math.Log10(11/10.0);';-) –

+1

非常感謝!它需要類型轉換。剛剛意識到這一點 –

回答

9

你應該把它像

Math.Log10(11.0/10.0); 

否則11/10將導致(整數除法)和相應

+0

寫它像Math.Log10((雙)x/y)服務我的目的:) –

+0

@Nilesh Barai:是的,訣竅是使用浮點除法,而不是整數1;換句話說,你應該使用'double'而不是'int'。你可以通過「(雙)11」或「11.0」或「11d」來完成。 –

1

改變它

對數
Math.Log10(11.0/10.0); 

Math.Log10(11D/10D); 
1

試試這個:

Math.Log10(11.0/10); 
2

您還沒有計算11/10日誌,因爲11/10爲1。如果你想計算的話,你必須使用雙打:

Math.Log10(11.0/10.0); 
2

這是因爲它首先進行整數除法11/10(它等於1)。

指定你的號碼爲雙:

Math.Log10(11d/10d); 
+0

'm' - 小數點,我認爲你的意思是'd'。 '11d/10'就夠了。 –

+0

@UlugbekUmirov沒錯,糾正它。雖然小數也可以。 – Szymon