Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / аналог atoi ? + / 6 сообщений из 6, страница 1 из 1
05.11.2004, 02:14
    #32769751
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог atoi ? +
есть в сишарпе штатное средство для чтения числа из строки типа
atoi - взять сначала строки максимально длинную лексему, удовлетворяющую
определению числа и переконвертить ее в число?
для целоги и плавающего?
а то Parse парсит все вроде бы
...
Рейтинг: 0 / 0
05.11.2004, 02:30
    #32769757
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог atoi ? +
System.Convert.To... далее везде
...
Рейтинг: 0 / 0
05.11.2004, 04:16
    #32769775
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог atoi ? +
нифига. на "12ig" не проработало.
пойду сам писать.

************** Exception Text **************
System.FormatException: Input string was not in a correct format.
at System.Number.ParseInt64(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ToInt64(String value)
...
Рейтинг: 0 / 0
05.11.2004, 05:01
    #32769779
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог atoi ? +
попробуй через regexp
Код: plaintext
1.
2.
3.
string z=" yy12 ig";
			
string u=Regex.Match(z, @"\d+").Value;
int    d=(u==string.Empty) ? 0 : Convert.ToInt32(u);
?
...
Рейтинг: 0 / 0
05.11.2004, 05:08
    #32769780
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог atoi ? +
или для числа со знаком
Код: plaintext
string u=Regex.Match(z, @"[\+\-]{0,1}\d+").Value;
...
Рейтинг: 0 / 0
16.11.2004, 00:27
    #32783223
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог atoi ? +
спасибо кузя.
про регулярные выражения я забыл
я так сделал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
  static public 
  int atoi (string str) {
   return (int)atoNmbr( str, true, new CultureInfo( "en-US", false ).NumberFormat);
  }

  static public 
  double atod (string str) {
   return (int)atoNmbr( str, false,  new CultureInfo( "en-US", false ).NumberFormat);
  }

  static public 
  double atoNmbr(string str, bool onlyInt, NumberFormatInfo f)
  {
    double  r;
    for (int i =  str.Length; i> 0 ; i--){
      if ( double.TryParse ( str.Substring(0, i), 
              onlyInt?(
              NumberStyles.AllowLeadingSign  |
              NumberStyles.AllowLeadingWhite |
              NumberStyles.AllowTrailingWhite
              )
              :
             (NumberStyles.AllowCurrencySymbol |
              NumberStyles.AllowExponent  |
              NumberStyles.AllowThousands |
              NumberStyles.AllowDecimalPoint |
              NumberStyles.AllowLeadingSign  |
              NumberStyles.AllowLeadingWhite |
              NumberStyles.AllowTrailingWhite
             ), 
              f, out r)){
        return  r;
      }
    }
    return 0.0;
  }

...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / аналог atoi ? + / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]