2013-02-05 44 views
-5

我有一個double變量如下圖所示我需要得到雙重價值的數據,而不必小數

double var1 = 0; 

而且 我有一個Value = 123.25

對於實例var1 += Math.Round(123.25),我得到123.0

所以我需要得到數據,如如下圖所示?

輸出應該= 123

+0

什麼是'var1'?在最後使用.0生成值時,你如何使用它? – JLRishe

回答

3

的問題是不能在數據 - 它在串轉換。有一個爲123.0和123之間的double沒有區別......他們究竟相同的價值觀,與同位。

因此,而不是專注於double值本身,你應該看看你如何使用它 - 你還沒有告訴我們。例如,您可能只想更改您使用的格式模式。

+0

能否請你提供代碼,因爲我是新鮮的 – Subbu

+4

@Subbu:不,我們不能給你代碼 - 你沒有告訴我們你是如何使用的價值(即你看到的地方123.0 )...此外,目標是讓你*學習* - 所以你應該看看你的代碼,並使用答案中提供的信息,看看你是否可以自己修復它。 –

0

如何使用:

(int)var1 

無論你需要表現出它的價值?根據您的問題

+0

沒有它不工作 – Subbu

+0

Convert.ToInt32(的doubleValue)................ – Sandy

+3

@Subbu:「它不工作」是*永不*了良好的反響。你應該*總是*提供更多信息。 –

0

。如果你只想要整數值,爲什麼不把Math.Round()結果賦值給一個int類型?那會讓你得到你想要的。

int x = (int)Math.Round(123.25); 

我不明白你最後不喜歡.0的原因嗎?如果您打印保存123.0的變量,它將顯示爲123.使用調試器時,我只能看到123.0。 你是如何使用這個值的?如果你能告訴我們,那麼如果沒有提供的解決方案對你有用,我們可以找到更好的解決方案。

0
int someOtherInt = Convert.ToInt32(var1); 
0

您會對類型感到困惑。你不希望通過它的聲音使用double在這種情況下。相反,請使用int

int var1 = 0; 
int var2 = (int)123.25; 
int output = var1 + var2; 

output在這種情況下是123 Cast即可int消除了Math.Round的需要。

+0

這裏不應該輸出123嗎? – JLRishe

+0

@JLRishe是的,錯字:P – LukeHennerley

相關問題