Member 11676544 Ответов: 2

Обрезка и удаление цифр из строк


На самом деле у меня есть значение "000000099"
и после некоторых методов обрезки значение, наконец, отображается как ".99"
Здесь на самом деле обрезка передних всех нулей и отображение из точки(передние все 0 удаляются или обрезаются), то есть; наконец, он отображается как ".99"

Поэтому здесь мне нужно, если значение меньше 1, например "0.99" или "0.73" или "0.35"
он должен отображаться как "0.99 или 0.73"
но не так, как ".99 или .73"
Пожалуйста помогите мне с этим друзья...........!!

Что я уже пробовал:

public string FormateStringAmount( string strValue ) // here string value is getting like 0000000099 for 0.99 value
{
try
{
if (strValue.Trim () =="" ) return "0.00" ;

string strTrimString = strValue.Trim(); 		
string strAmount  = "0.00";
int intLength =strTrimString.Length ;

if ( strTrimString.EndsWith("+")  )
  {
    strAmount =  strTrimString.Substring(0,intLength -3)+"." + 
    strTrimString.Substring( intLength -3,2) ;
  }
else if (  strTrimString.EndsWith("-"))
  {
    strAmount =  strTrimString.Substring(0,intLength -3)+"." + 
    strTrimString.Substring( intLength -3,2)+"-" ;
  }
else
  {
    strAmount = strTrimString.Substring(0,intLength -2)+"." + 
    strTrimString.Substring( intLength -2,2);
  }

  strAmount = strAmount.TrimStart ('0');// here the value is getting trimmed front Zero's
   if (strAmount.Equals (".00") || strAmount.Equals (".00-"))  
   strAmount ="0.00" ;
   return strAmount;
    }
	Catch (Exception)
	{	 
	return strValue;
	}
}

2 Ответов

Рейтинг:
2

Ralf Meier

Я понимаю ваше требование так :
- У вас всегда есть строка, которая содержит только цифры.
- Вы всегда хотите иметь последние 2 числа строки в виде десятичных знаков.

Таким образом, ваш код может выглядеть следующим образом :

string s = "000000099";
int i = (int)s;
double d = (double)i / 100;
string s2 = d.ToString("0.00");

Я сделал это поэтапно, чтобы вы могли видеть, как это работает.
Сам код может быть сжат ...


Рейтинг:
1

Maciej Los

Пожалуйста, прочтите это:
Строки Стандартного Числового Формата | Microsoft Docs[^]
Пользовательский Числовой Формат Строк | Майкрософт Документы[^]

Правильный способ получить числовое значение-преобразовать строку в double с помощью Double.Метод Parse, а затем отобразить его с помощью метода ToString (). Например:

string stramount = "000000099";
double dblamount = Double.Parse(stramount, System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.CultureInfo.InvariantCulture);
dblamount /= 100;
Console.WriteLine(dblamount.ToString("0.00")); //displays 0.99


Удачи вам!