flipper Opublikowano 29 Kwietnia 2010 Udostępnij Opublikowano 29 Kwietnia 2010 Mam zmienną double i chcę, aby pobierała ona wartość z kontrolki TextBox. Próbowałem w ten sposób: "x = tbWartosc.Text;", ale to nie działa bo to nie jest string. Proszę o pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 29 Kwietnia 2010 Udostępnij Opublikowano 29 Kwietnia 2010 Pobieraj wartość do stringa, twórz doubla i daj mu zaraz pod pobraniem do stringa: moja_zmienna = Double.Parse(moj_sting.Replace(".", ",")); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
flipper Opublikowano 29 Kwietnia 2010 Autor Udostępnij Opublikowano 29 Kwietnia 2010 Super! Działa. Wielkie dzięki. :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Kwietnia 2010 Administratorzy Udostępnij Opublikowano 29 Kwietnia 2010 Pamiętaj, że w większości języków trzeba niestety rzutować zmienne (czyli przerabiać jeden typ na drugi, np. string na int, double na char itp.) - to może przydać się na przyszłość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 To jest piekne w c# wlasnie gnysek string s = "zzzzz" + a.ToString() + "z" + b.ToString(); a na drugi raz google>double to string C# Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 waxx: Innych typów nie próbowałem, ale double/floaty/inty/itd działają po prostu: zmiennastring = "zycie: " + hpjakozmiennareal + " hp"; I na przyszłość - wiele typów możesz rzutować o tak: double zmienna = (double)zmiennafloat; Po prostu w nawiasie przed nazwą zmiennej/funkcji/czegokolwiek podajesz, jak chcesz to otrzymać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Kwietnia 2010 Administratorzy Udostępnij Opublikowano 30 Kwietnia 2010 Tak, w C#, w Javie też, niektóre typy zmiennych mają zadeklarowaną metodę .toString która jest defaultowo wywoływana przy konkatenacji lub tam, gdzie oczekiwany argument to tekst. Pamiętam, że np. w Javie opócz int jest też Integer, właśnie po to, żeby można było bez problemu łączyć taka zmienną z tekstem (czy też przesłonić po swojemu .toString() ). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 C++owy std::stringstream też potrafi 'z rzutować' zmienną typu *int na stringa :3 *I nie tylko Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 30 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 30 Kwietnia 2010 Jak już każdy dodaje coś od siebie to i ja: @gnysek: W zasadzie to każdy typ zmiennej w c# ma zadeklarowaną metodę ToString - bezpośrednio lub pośrednio poprzez dziedziczenie podstawowego typu object. @konrad-gm: Tylko że stringstream to odpowiednik textwriter i textreader w C#, a nie takiej funkcjonalności. @waxx: W C# akurat tak się nie powinno dokonywać konkatenacji i rzutowania. Albo używa się StringBuildera albo metody String.Format: string s = String.Format( "zzzzz {0} z {1}", a, b ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 Operatory są rzl :) void operator+=( std::string &str, const int &n ) { std::stringstream strs; strs<< n; str += strs.str(); } I daliśmy stringowi możliwość zrzutowania inta po przez operator "+=" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 30 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 30 Kwietnia 2010 No ale w c# też jest przeciążanie operatorów. Tak czy siak wiem do czego zmierzasz. W c++ możesz sobie napisać funkcjonalności gotowe na starcie w c#. Tylko komu by się chciało. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 W końcu C# jest wzorowany na C i Cpp, tylko został stworzony dla wygody wraz z dużą ilością użytecznych ficzerków ( foreach, int.ToString itd. ) ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 @waxx: W C# akurat tak się nie powinno dokonywać konkatenacji i rzutowania. Albo używa się StringBuildera albo metody String.Format: string s = String.Format( "zzzzz {0} z {1}", a, b ); Szczerze nie wiedziałem, zawsze robiłem tak jak ja mówiłem i dzialało, powiedz może w czym lepsze jest to rozwiązanie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 30 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 30 Kwietnia 2010 W tym jest lepsze, że jest szybsze. Dokonywanie wielu jawnych konkatenacji i rzutowań jest operacją czasochłonną, a metody które podałem, to zalecane przyśpieszacze tego typu zadań. Zrób petlę z takimi działaniami, a następnie pomierz czas i zobaczysz różnicę. Tylko nie testuj prostych ciągów, bo wtedy + zazwyczaj jest szybszy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się