2016-09-21 128 views
2

我想10分一個int,並得到一個整數最接近四捨五入之一,所以 12應該給予1和17應該給2四捨五入除以10將int最近INT

繼承人我的代碼:

int BonusValue; 
int Str; 

BonusValue = Convert.ToInt32(Math.Round(Convert.ToDouble(Str)/10)); 

這項工作?

+0

試試吧,看看...另外,看看https://www.google.com/#q=c-sharp+math.round+options –

+0

好吧,你有沒有嘗試過測試你的代碼看看它是否有效?你有沒有發現你的代碼有問題? – user1666620

+0

自己測試一下嗎? – ThePerplexedOne

回答

6

是的,這應該工作。

然而,如果您在您的情況5中將舍入步驟的一半添加到整數,則要容易得多。然後,你可以做簡單的整數除法:

BonusValue = (Str+5)/10

+1

附加獎勵:由於中點四捨五入到最接近的偶數,這不會產生令人驚訝的結果。 –

+0

謝謝,我將使用這個 - 它令人驚訝地簡單而有效。 – Bronsoner

+1

然而,它會產生令人驚訝的結果負面投入。如果'Str'爲'-14',則會得到'0'的結果。 –

0

這樣做是可以的,但它是這樣做的方式效率極低。

團結做你想要什麼,最好的方法是使用內置的方法來做到這些

BonusValue = Mathf.RountToInt(Str/10f);