В цикле while yo = (postlist[i])*((float(base))**-(float(i + 1)))
вычисляет значение одной цифры. Тогда yo += yo
удваивает его. Вместо этого вы должны добавлять значения цифр к сумме накопления.
Через две строки return float(whole) + float(yo)
возвращается из функции внутри цикла, поэтому выполняется только одна итерация цикла. Возвращение должно быть после и вне цикла (без отступа от кода внутри цикла).
Рассмотрение http://www.nasdaq.com/ или http://finance.yahoo.com/, кажется, что знак процента прямо после числа без промежутка пространства распространен :)
Взгляните на http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.percentpositivepattern.aspx
Это, вероятно, зависит от культуры, значение по умолчанию (инвариант), являющийся n %
Для изменения значения PercentPositivePattern по умолчанию необходимо создать новый объект CultureInfo и использовать его вместо значения по умолчанию, которое является, вероятно, "en-us". (Поочередно, можно указать "en-za" как культуру в Web.config, но я не рекомендую это по очевидным причинам.)
Существует большое сообщение на Форумах ASP, объясняющих, как сделать все это. См. код, написанный третьим плакатом (m0brien). Я скопировал его точный код в метод своей основной страницы Page_Load, так, чтобы я больше не думал об этом.
Конечно, Вы могли всегда просто делать Строку. Формат ().Replace (" ", Строка. Пустой), но необходимо было бы сделать это всюду по сайту. Плюс, честно, где находится забава во что, когда Вы могли закатать рукава и играть со своими значениями глобализации???