C#Double Rounding

问题描述:

我目前正在研究一个程序,并将我的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://*.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

难道你不能这样做到四舍五入到2个小数位?

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

这里是一个C#方法,你可以改用:

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

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