Пятница, 22 Ноября 2024, 01:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Точка и запятая
tourniquetДата: Воскресенье, 21 Октября 2012, 01:29 | Сообщение # 1
частый гость
Сейчас нет на сайте
using System;

class SchimbValutar {
static void Main() {
double rate, lei, sum;
string s;

Console.WriteLine("Введите курс для доллара");
s = Console.ReadLine();
rate = Convert.ToDouble(s);

Console.WriteLine("Сколько леев вы хотите продать?");
s = Console.ReadLine();
lei = Convert.ToDouble(s);

sum = lei / rate;
Console.WriteLine("Вы можете купить " + sum + "$");
}
}

Народ, вечер добрый! Опять я со своим конвертором, на этот раз под С#. Всё вроде работает, но, есть один момент, не знаю в какую сторону копать! Ввожу курс доллара 12.4 (с точкой!) - получаю один результат, ввожу курс 12,4 (с запятой!) - уже воторой результат? Как с этим боротся? Спасибо!
UndeadДата: Воскресенье, 21 Октября 2012, 01:49 | Сообщение # 2
NeoAxis User
Сейчас нет на сайте
В системе какой разделитель по умолчанию? Запятая должна была вызвать FormatException.
Либо парси строку на предмет разделителий и замения на тот, что в системе сейчас используется, либо пиши Winforms GUI там удобный контрол для ввода чисел.
Заметка на хабре


Вcем зла.

Сообщение отредактировал Undead - Воскресенье, 21 Октября 2012, 01:52
arthurfokДата: Воскресенье, 21 Октября 2012, 16:06 | Сообщение # 3
частый гость
Сейчас нет на сайте
Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class SchimbValutar
{
      static void Main()
      {
          double rate, lei, sum;
          string s;

          Console.WriteLine("Введите курс для доллара");
          s = Console.ReadLine();
          if (s.Contains('.'))
              s = s.Replace('.', ',');
          rate = Convert.ToDouble(s);

          Console.WriteLine("Сколько леев вы хотите продать?");
          s = Console.ReadLine();
          if (s.Contains('.'))
              s = s.Replace('.', ',');
          lei = Convert.ToDouble(s);

          sum = lei / rate;
          Console.WriteLine("Вы можете купить " + sum + "$");
      }
}


Вообще то, если в твое число с точкой ( в место запетой) , то Convert.ToDouble() должен выдать вот такой error: Input string was not in a correct format.


Сообщение отредактировал arthurfok - Понедельник, 22 Октября 2012, 15:35
tourniquetДата: Воскресенье, 21 Октября 2012, 18:09 | Сообщение # 4
частый гость
Сейчас нет на сайте
Да нет, число с запЯтой, никаких ошибок не выдaёт. Позже попробую решить проблему, напишу что получилось.

Сообщение отредактировал tourniquet - Воскресенье, 21 Октября 2012, 18:15
arthurfokДата: Воскресенье, 21 Октября 2012, 21:15 | Сообщение # 5
частый гость
Сейчас нет на сайте
Так я же уже написал решение ! О_о
if (s.Contains('.'))
s = s.Replace('.', ',');
tourniquetДата: Воскресенье, 21 Октября 2012, 23:47 | Сообщение # 6
частый гость
Сейчас нет на сайте
Дя дя, работает! Спасибо! ))

Просто я спешил когда прочитал твоё сообшение, ответил и не успел проверить. Только что проверял, всё работает! wink
arthurfokДата: Понедельник, 22 Октября 2012, 15:34 | Сообщение # 7
частый гость
Сейчас нет на сайте
wink
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг