c# 獲取數字的小數位數
阿新 • • 發佈:2022-05-23
/// <summary>
/// 獲取小數位數
/// </summary>
/// <param name="decimalV">小數</param>
/// <returns></returns>
public
int
GetNumberOfDecimalPlaces(
double
decimalV)
{
int
result = 0;
string
[] temp = decimalV.ToString().Split(
new
char
[] {
'.'
}, StringSplitOptions.RemoveEmptyEntries);
if
(temp.Length == 2 && temp[1].Length > 0 && !temp[1].ToUpper().Contains(
"E"
))
{
int
index = temp[1].Length - 1;
while
(temp[1][index] ==
'0'
&& index-- > 0) ;
result = index + 1;
}
else
{
temp = decimalV.ToString().Split(
new
char
[] {
'-'
}, StringSplitOptions.RemoveEmptyEntries);
if
(temp.Length == 2 && temp[1].Length > 0)
{
result =
int
.Parse(temp[1]);
}
string
s = temp[0].Substring(0, temp[0].Length - 1);
temp = s.Split(
'.'
);
if
(temp.Length == 2 && temp[1].Length > 0)
{
int
index = temp[1].Length - 1;
while
(temp[1][index] ==
'0'
&& index-- > 0) ;
result = result + index + 1;
}
}
return
result;
}