Joe BlackВы модифицируете какой-то учебный пример? Или весь этот код целиком ваш?
Что, вообще, ваша программа должна делать?
Как по вашему мнению должен работать цикл 
int i=0;
 do{             
  simb=str.at(i);
  sim=str.at(i);
  if (48<=sim<=57)
   str1+=simb;
  else if (sim=='.')
   {
           str2+=str.at(i+1);            
                 str2+=str.at(i+2);
                 break;        
         }
 }while(sim!='.');
  
 А как он работает на самом деле? В частности, изменяется ли значение переменной 
i в каждой итерации? И как, по вашему, вычисляется выражение 
48<=sim<=57? А как оно вычисляется на самом деле? И как его нужно записать правильно? 
(Оффтоп)
Лучше вместо 48 и 57 использовать '0' и '9' соответственно.
И к чему все эти сложности с ООП если код 
#include <iostream>
using namespace std;
int main(){
        double account;
        cout << "Please, enter your money: ";
        cin >> account;
        cout << "Your account: " << account << "\n\nHit any key to exit . . . ";
        system("pause > nul");
        cout << endl;
        return 0;                
}  
имхо, делает желаемое?
-- 09 фев 2016, 13:34 --string str1="",str2="";
string simb;
 Ранее мы уже обсуждали явную инициализацию объектов типа 
string пустой С-шной строкой. Было высказано две точки зрения:
-  такая инициализация бессмысленна, так как конструктор по умолчанию и так её выполняет;
 -  такая инициализация полезна, так как визуализирует инициализацию переменных типа string.
 
Я придерживаюсь первой точки зрения. Кому-то милее вторая. А вы? По вашему коду не понять.