敬业的IT人 >> 编程开发 >> .Net技术 >> 四舍五入保留小数后两位

四舍五入保留小数后两位

敬业的IT人 互联网 佚名 2008-5-23 12:16:05
1 /**
2 * Contains static utility methods.
3 */
4 public class BOUtils {

6 public static Double getRoundedDouble( double unroundedValue ){

7 // Get the integer portion of the value
8 double intPortion = Math.floor( unroundedValue );

10 // Get the unrounded decimal portion
11 double unroundedDecimalPortion = ( unroundedValue - intPortion );
12 
13 /* ALERT - This next code interferes with I18N. We eventually need */
14 /* to change this not assume only round to 2 decimal places. */
15 
16 /* Multiply the decimal places by 100, which shitfs the decimal point
17 /* two places to the left. Then round it so that we get a round to
18 /* two decimal places. For example, if we started with 17.655 and stripped
19 /* off the int portion, which left .655. After we shift, we are left with
20 /* 65.5. Then a round will gives us 66. We can then put it all back
21 /* together */
22 double roundedDecimalPortion = Math.round( unroundedDecimalPortion * 100 );
23 
24 // Shift the decimal point back two places to the right
25 roundedDecimalPortion = roundedDecimalPortion / 100;
26 
27 // Add the int portion and decimal portions back together
28 double total = intPortion + roundedDecimalPortion;
29 
30 return new Double( total );
31 }
32 }  



粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com