2011-09-15 29 views
0

如果數字不爲零,我想將十進制值數字舍入爲較高值。 我想將第六位數字四捨五入爲上限值。將十進制數字舍入到較高值

Sample Value = 1.0003331 
Expected Value = 1.000334 
+0

C? C++? PHP? Language please :) – brain

+1

@brain:C#,根據標籤。 –

+0

@Jon:我的壞話。抱歉! – brain

回答

1

聽起來像是你可能想:

decimal scale = 1000000m; 
decimal rounded = decimal.Ceiling(x * scale)/scale; 

(規模可以由一個:)

顯然被關閉,如果你嘗試處理與它非常大的數字,這將導致一個問題 - 他們可能會溢出。

我想認爲你也可以通過添加一定量的,然後使用decimal.Round做同樣的事情,但它是略顯笨拙而不RoundTowardsZero一個MidpointRounding

0

你可以嘗試這樣的事情:

decimal.Round(Value + 0.00000049m, 6, MidpointRounding.AwayFromZero) 

MidpointRounding.AwayFromZero確保當一個數字是中間兩個人之間,實際上是朝着那就是遠離零最接近的數字四捨五入。

MSDN Decimal.Round