Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 16.06.2010 2:24

Zdravim,
nemate niekto funkciu, s ktorou by som skonvertoval string do floatu ?

Mam string dajme tomu: "123.45" a chcem to hodit do floatu. Prekvapilo ma trosku, ze to len tak lahko nejde (holt, nie je to PHP :))

Na Googli riesenia som moc nechapal..

Ja som na to isiel takto:
Kód:
float string2float(string vstup)
{
    float vystup;
    int temp,desatinne,i,a,e;
    bool bolaBodka;
    string tempS;

    bolaBodka = false;
    vystup = atoi(vstup.c_str());
    a = 1;
    desatinne = 0;

    for(i=strlen(vstup.c_str())-1;i>0;i--) {
        if (vstup[i]=='.') {
            bolaBodka = true;
        }
        if (bolaBodka==false) {
            tempS = vstup[i];
            temp = atoi(tempS.c_str());
            for (e=0;e<a;e++) {
                temp = temp * 10;
            }
            temp = temp / 10;
            desatinne = desatinne + temp;
           
            a++;
        }
    }
    vystup = vystup + (desatinne/100);

    //cout << endl << "'" << vystup << "'" << endl;
    return vystup;
}

Hahaha, smejete sa, ze ? :D Ale som sa to snazil riesit mojim sedliackym rozumom, ale nic moc z toho nevychadza :)

Nejake napady ? :)







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 19.09.06
Prihlásený: 17.01.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 16.06.2010 9:05

atof


Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 16.06.2010 11:16

cannot convert `std::string' to `const char*' for argument `1' to `double atof(const char*)'

Zapisane mam takto:
Kód:
string riadok;
float pomocny;
pomocny = atof(riadok);







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 16.06.2010 11:34

pozor na oddelovac ci davas bodku alebo ciarku !!!


Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 16.06.2010 11:38

bodka tam je ..







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 19.09.06
Prihlásený: 17.01.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 16.06.2010 11:45

ne ne, to je runtime chyba, od oddelovaca to nezávisí. Toto by chcelo previesť ten reťazec na klasický c-ckovsky aby to tá funkcia zozrala. Bohužial na tu funkciu si teraz nespomínam.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 16.06.2010 12:17

zeby ?
Kód:
string riadok;
const char *p = riadok.c_str();
float pomocny;
pomocny = atof(p);


Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 16.06.2010 12:55

Asi robim nieco ine zle.. Stale to nejde..
Skusim to odzaciatku :)







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 16.06.2010 13:12

no a teraz to hodilo aku chybu ?


Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 17.06.2010 0:35

identicku..







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
C++ string to float

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13
Príspevok NapísalOffline : 17.06.2010 2:26

atoi je Ceckovsky sposob... Klasicky C++ sposob je cez stringstream (odporucam pochopit streamy a riadne sa s nimi vyhrat)

Kód:
#include <string>
#include <sstream>
#include <iostream>

int main(void)
{
   std::string a = "137.1475";
   std::istringstream b(a);
   float f;
   b >> f;
   std::cout << f+f;
   return 0;
}


Dalej je este celkom zauzivany sposob cez lexicke pretypovanie z kniznice boost

Kód:
#include <boost/lexical_cast.hpp>
#include <iostream>
#include <string>

using std::endl;
using std::cout;
using std::string;
using boost::lexical_cast;

int main() {
    string str = "0.6";
    double dub = lexical_cast<double>(str);
    cout << dub*dub+dub << endl;
}







_________________
Učet je neaktívny.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.10
Prihlásený: 27.08.10
Príspevky: 8
Témy: 1
Príspevok NapísalOffline : 27.08.2010 12:46

Ja som to robyl dako takto:

Kód:
String str;
float flt;

flt = (float)StrToFloat(str);



Odpovedať na tému [ Príspevkov: 12 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. c++ praca so string

v Assembler, C, C++, Pascal, Java

2

386

16.11.2014 13:17

mork4 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. string v C = segmentation fault

v Assembler, C, C++, Pascal, Java

1

290

05.11.2011 12:01

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# - string[x] to int

v Technológia .NET

3

650

24.03.2015 0:11

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# - Formulovanie matematickych operacii pomocou string

v Assembler, C, C++, Pascal, Java

2

303

13.06.2014 16:23

nico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ vypísanie string funkcie na konzolu

v Assembler, C, C++, Pascal, Java

18

687

15.11.2014 22:13

matt1024 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# - Formulovanie matematickych operacii pomocou string

v Assembler, C, C++, Pascal, Java

0

347

26.09.2015 20:59

nico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dev C++- problem s typom float alebo double

v Assembler, C, C++, Pascal, Java

2

683

08.03.2009 19:17

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. String ako návratová hodnota funkcie v C++

v Assembler, C, C++, Pascal, Java

1

979

06.04.2008 23:11

Ivan11114 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Float

v HTML, XHTML, XML, CSS

2

780

19.06.2009 19:49

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. float+clearovač

v HTML, XHTML, XML, CSS

10

554

24.09.2011 14:34

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. použitie FLOAT

v HTML, XHTML, XML, CSS

2

451

25.08.2008 23:47

xxxmiroxxx Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. FireFox Float

v HTML, XHTML, XML, CSS

2

562

31.08.2009 15:17

Snacker Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. String

v PHP, ASP

2

614

19.04.2010 21:20

Antuanet Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. float a tak

v HTML, XHTML, XML, CSS

3

499

04.04.2008 19:10

HAE07 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zas ten float...

v HTML, XHTML, XML, CSS

2

610

21.07.2008 22:56

max-m Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem s float

v HTML, XHTML, XML, CSS

1

477

11.06.2009 15:05

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra