2011-01-26 55 views
1

我目前正在研究一個程序,並將我的java代碼轉換爲c#。但我有一些麻煩。C#Double Rounding

public double round(double value){ 
     BigDecimal b = new BigDecimal(value); 
     b = b.setScale(2,BigDecimal.ROUND_UP); 
     return (b.doubleValue()); 
    } 

我寫了這個代碼轉換,但我不能將其轉換爲C#.BigDecimal類型產生一些問題和即時通訊全新到.Net.Definitely需要一些幫助。

編輯:好芽我知道了,對不起愚蠢的問題。

+0

看起來像.NET沒有Java的BigDecimal的等效 - [堆棧溢出(http://stackoverflow.com/questions/2863388/what-is-the-equivalent-for-java-類的BigDecimal-在-C)。它有小數,但這隻有有限的精度。這對你想做什麼來說足夠了嗎? – mgiuca 2011-01-26 23:51:01

+0

其實我並不需要那種類型,所有我需要的是實現雙重四捨五入的方式,我用bigdecimal – thecodekid 2011-01-26 23:55:17

回答

4

難道你不能這樣做到四捨五入到2個小數位?

 double foo = 3.143; 
     double fooRounded = Math.Round(foo, 2); 
5

這裏是一個C#方法,你可以改用:

public double round(double value){ 
    return Math.Round(value, 2, MidpointRounding.AwayFromZero); 
} 

NET的MidpointRounding.AwayFromZero是Java的ROUND_UP的等價物。