Проблем с конверсия - string to long
Здравейте!
Опитвам се да реша следната задача https://projecteuler.net/problem=8
Използвам string за цифрите и long за произведението но при умножение получавам абсурдно големи резултати.
Първата ми грешка разбира се беше директно да умножа string[i]*long - нея я премахнах вече :)
Сега обаче когато конвертирам стринга към лонг получавам кажи-речи същите резултати.
Конверсията правя със Convert.ToInt64 - в MSDN пише
"Converts the specified string representation of a number to an equivalent 64-bit signed integer."
Къде греша?
Има ли значение това че използвам string а не string[]?
Long не ми върши работа. Провери условието на задачата ако желаеш - имам произведение което има за горна граница близо 10^13 .....
Long е абсурдно далеч от този размер.
И ако не е проблем би ли обяснил как така "само" ?
Стринг може да се преобразува в число по различни начини, включително Convert.ToInt64(). Може и ръчно да се сметне с цикъл. Грешно е по принцип за каквото и да било да се твърди, че само по определен начин може да се направи.
@Woofles, точно long ти трябва, int/uint не ти вършат работа, а няма тип, който да е по-голям от uint и по-малък от long. Това, че е по-голям, не пречи, пречи ако не е достатъчно голям.
Не прочетох въпроса внимателно, за което се извинявам. Извън темата, до колкото знам единствената разлика на двата похвата е в това как се държат при подаване на null.
null за щастие не мога да имам в случая (май). С outofbouds се справих бързо поне.