private string Execute(string DecimalNumber, int Precision)
{
try
{
CultureInfo ci = new CultureInfo(CultureInfo.CurrentCulture.Name, true);
NumberFormatInfo nmfi = new NumberFormatInfo();
nmfi = ci.NumberFormat;
ci.ClearCachedData();
string prefix = "";
if (_NegativeSign && DecimalNumber.IndexOf(nmfi.NegativeSign) == 0)
{
DecimalNumber = DecimalNumber.TrimStart(Convert.ToChar(nmfi.NegativeSign));
prefix = nmfi.NegativeSign;
}
if (DecimalNumber.Trim() == "")
{
DecimalNumber = "0";
}
Decimal m_decTemp = Math.Round(Convert.ToDecimal(DecimalNumber, nmfi), Precision);
//string m_strTemp = "0", m_strLocal = nmfi.NumberDecimalSeparator;
//for(int k=0; k < Precision; k++)
// m_strLocal += "0";
//m_strTemp += m_strLocal;
string rep = m_decTemp.ToString(nmfi);
string originalIntPortion;
string originalDecPortion;
int index = DecimalNumber.LastIndexOf(nmfi.NumberDecimalSeparator);
if(index == -1)
{
originalIntPortion = DecimalNumber;
string m_strTemp = ""; ////SHASHWATA
m_strTemp = nmfi.NumberDecimalSeparator; ////SHASHWATA
for (int k = 0; k < Precision; k++)////SHASHWATA
m_strTemp += "0";////SHASHWATA
originalDecPortion = m_strTemp;////SHASHWATA
//originalDecPortion = nmfi.NumberDecimalSeparator + "0";
}
else
{
originalIntPortion = DecimalNumber .Substring (0,index);
//originalDecPortion = nmfi.NumberDecimalSeparator + DecimalNumber.Substring(index+1);
}
//return originalIntPortion + originalDecPortion;
if (originalIntPortion == "") originalIntPortion = "0";
string newIntPortion;
index = rep.LastIndexOf(nmfi.NumberDecimalSeparator);
if (index == -1)
{
newIntPortion = rep;
}
else
{
newIntPortion = rep.Substring(0, index);
}
if (newIntPortion == "") newIntPortion = "0";
rep = prefix + rep.Replace(newIntPortion + nmfi.NumberDecimalSeparator, originalIntPortion + nmfi.NumberDecimalSeparator);
return rep;
}
catch(SystemException)
{
return "";
}
}