Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
24 / 24 / 9
Регистрация: 27.11.2011
Сообщений: 272
1

При возведении в степень возвращается неправильный ответ

19.10.2014, 15:11. Просмотров 480. Ответов 7
Метки нет (Все метки)

Дорый день.
Если взять:
C#
1
 MessageBox.Show((Math.Pow(3, 7).ToString()));
Получим 2187.
А если же делать так:
C#
1
2
3
string a = "312";
            foreach (short b in a)
                MessageBox.Show((Math.Pow(b, 7).ToString()));
То получаем полный бред в ответе. Почему так? Что делаю не правильно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2014, 15:11
Ответы с готовыми решениями:

Неправильный результат при возведении числа в степень
#include<stdio.h> #include<math.h> main() { int n,a; scanf("%d",&n); a=pow(2,n);...

Закономерности при возведении в степень
Допустим, мне нужно возвести в очень большую степень по модулю. Возможно ли заменить это действие...

Ошибки при возведении экспоненты в степень
Подскажите, пожалуйста, почему при попытке выполнить программу using System; using...

Ошибка при возведении в степень по модулю 33
ошибка при возведении в степень по модулю 33 пробую 15^17 по модулю должен вывести 27 14^17...

7
4 / 4 / 1
Регистрация: 13.10.2014
Сообщений: 28
19.10.2014, 15:20 2
меня смущает что а у вас string, а параметр в - short.
0
756 / 263 / 57
Регистрация: 13.12.2009
Сообщений: 1,022
19.10.2014, 15:23 3
Посмотри
http://msdn.microsoft.com/ru-ru/library/ybs77ex4.aspx
Ключевое слово short обозначает целочисленный тип данных,
string a = "312"; текст переменная а должна содержать какой-то массив
не совпадают типы данных
0
24 / 24 / 9
Регистрация: 27.11.2011
Сообщений: 272
19.10.2014, 15:26  [ТС] 4
Ошибочка вышла, вообще должно быть вот так:
C#
1
2
3
4
5
6
string a = "312";
            for (int i = 0; i < a.Length; i++)
            {
                MessageBox.Show(a.ElementAt(i).ToString());// тут возрашает числа правильно
                MessageBox.Show((Math.Pow(a.ElementAt(i),7).ToString()));// а вот тут уже начинается бредятина
            }
Даже есть зделать так:
C#
1
Convert.ToInt16(a.ElementAt(i));
0
4 / 4 / 1
Регистрация: 13.10.2014
Сообщений: 28
19.10.2014, 15:28 5
вот и я о том же. как вы в тексте будете перебирать целые значения?

Добавлено через 2 минуты
Цитата Сообщение от llFreeManll Посмотреть сообщение
MessageBox.Show(a.ElementAt(i) .ToString());// тут возрашает числа правильно

тут возвращаются элемента строки а, но не числа
0
1635 / 980 / 362
Регистрация: 13.06.2013
Сообщений: 3,380
19.10.2014, 15:30 6
Вот вот, пишите лучше через var.
C#
1
2
3
string a = "312";
foreach (var b in a)
     MessageBox.Show((Math.Pow(b, 7).ToString()));
Иначе там явно идут какие то преобразования...то ли подставляется код символа в ASII...или еще что то. Дебагером видно
0
24 / 24 / 9
Регистрация: 27.11.2011
Сообщений: 272
19.10.2014, 15:37  [ТС] 7
Цитата Сообщение от tarasalk Посмотреть сообщение
Вот вот, пишите лучше через var.
Все равно не работает(
0
1635 / 980 / 362
Регистрация: 13.06.2013
Сообщений: 3,380
19.10.2014, 16:25 8
Храните лучше числа в другом виде, это же явно массив чисел. Иначе придется делать преобразования типа такого
C#
1
2
3
string p = "423";
foreach (var b in p)
     MessageBox.Show((Math.Pow(Convert.ToDouble(b.ToString()), 2).ToString()));
Есть оказывается еще такой вариант
C#
1
2
3
string p = "423";
foreach (var b in p)
     MessageBox.Show((Math.Pow(Char.GetNumericValue(b), 2).ToString()));
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2014, 16:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Длинная арифметика при возведении в степень
Ребята как можно вводить тип с 10^1000000 емкостью?

Ошибка NAN при возведении в степень
Ребята помогите пожалуйста в чем проблема у меня в результатах пишет -NAN вот задание ...

Ошибка при возведении в степень с функций ln и exp
Собственно вот код: var n, c: integer; a, b: real; begin ...

Неверный вывод при возведении в степень массива
При попытке возвести в степень получается неверный рассчет. При возведении массива в 3 степень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.