Я делаю консольную программу, и я пытаюсь читать значения из пользовательского ввода. Если пользователь вводит значение, подобное 1, оно заканчивается как 49. Я считаю, что код ввода: int classicPlant = Console.Read()
- проблема, но я не знаю, почему, или если она даже есть.
Я убедился, что это не вина в действиях, которые я выполняю на нем, потому что я проверил его в отдельной программе. Любая идея, как эти цифры могут расти в стоимости?Почему пользовательские вмененные значения растут в значительной степени в стоимости после ввода через Console.Read();
-4
A
ответ
6
int classicPlant = Console.Read()
является виновником.
Console.Read
возвращает значение символа элемента ввода. В ASCII, '1' = 49, и '3' = 51.
'1' - 1 == 48
'3' + 1 == 52
Таким образом, исправить Read
использовать Integer.Parse()
или проверить диапазон и вычитать 48 или что-то подобное
+1
И в случае, если неясно, 'classicLimes' равно 5 и' 5 - '1' == -44' – Eris
Извините за фрагмент, который не попал в формат кода. Я попытаюсь отредактировать это. –
Ваша «целая программа» не будет компилироваться, но ваш вопрос в значительной степени непонятен, поскольку в настоящее время он написан - попытайтесь сузить * просто * то, что необходимо для воспроизведения вашей проблемы в полном примере, который * компилирует и запускает *. Вероятно, вы найдете свою проблему в процессе ее выполнения, но если вы этого не сделаете, обновите свой вопрос с помощью * этого * кода. http://sscce.org/ –
Во-первых, строка ** double classicLPD = classicTrees * = 0.5; ** устанавливает classicTrees в 3, поэтому вы получаете 3 вместо 6. – Angzuril