C#四捨五入,放送給各位Round Function
自製的C#四捨五入,放送給各位。Round Function
01
public static Double Round(Double a_Value, int a_Places)
02
{
03
Double l_RT, l_XS;
04
l_XS = 1;
05
if (a_Places >= 0)
06
{
07
for (int i = 1; i <= a_Places; i++)
08
{
09
l_XS = l_XS * 10;
10
}
11
}
12
else
13
{
14
for (int i = a_Places; i < 0; i++)
15
{
16
l_XS = l_XS * 0.1;
17
}
18
}
19
l_RT = Math.Floor(Math.Abs(a_Value) * l_XS + 0.5) / l_XS;
20
21
if (a_Value >= 0)
22
return l_RT;
23
else return 0 - l_RT;
24
}

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

測試結果 Test results
Round(123.4567,3)= 123.457
Round(123.4567,2)= 123.46
Round(123.4567,-1)= 123.5
Round(123.4567,0)= 123
Round(122.4567,3)= 122.457
Round(122.4567,2)= 122.46
Round(122.4567,1)= 122.5
Round(122.4567,0)= 122
Round(-123.4567,3)= -123.457
Round(-123.4567,2)= -123.46
Round(-123.4567,1)= -123.5
Round(-123.4567,0)= -123
Round(-122.4567,3)= -122.457
Round(-122.4567,2)= -122.46
Round(-122.4567,1)= -122.5
Round(-122.4567,0)= -122
Round(124.4567,-3)= 0
Round(124.4567,-2)= 100
Round(124.4567,-1)= 120
Round(125.4567,-2)= 100
Round(125.4567,-1)= 130
Round(-124.4567,-3)= 0
Round(-124.4567,-2)= -100
Round(-124.4567,-1)= -120
Round(-125.4567,-2)= -100
Round(-125.4567,-1)= -130
Round(-125.4567,-1)= -130