Witam. Ja w c++ builderze ustawić aby można było do obliczeń używać kropek i przecinków?
Np. liczna 10,5 i 10.5 to ta sama liczba. Nie chodzi mi o zmianę w systemie windows separatora ale o ustawienie możliwości wpisywania przez użytkownika zarówno kropek jak i przecinków.
A drugie pytanie. Ja wyświetlić w labeledEdit wyniki z kropką.
Dziękuję za pomoc
double value=StrToFloat(StringReplace(StringReplace(Edit1->Text,".",DecimalSeparator,TReplaceFlags()),",",DecimalSeparator,TReplaceFlags()));
Nie mogę sobie z tym poradzić.
Zmieniłem trochę zapis na:
double value=StrToFloat(StringReplace(StringReplace(Edit1->Text,".",DecimalSeparator) a w tym miejscu zatrzymuje się kursor i wyskakuje błąd,",",DecimalSeparator));
Błąd:
[C++ Error] Unit1.cpp(26): E2193 Too few parameters in call to '_fastcall StringReplace(const AnsiString,const AnsiString,const AnsiString,TReplaceFlags)'
Poprawiłem: http://4programmers.net/Forum/1238586
Super.Wielkie dzięki za pomoc. Wczytywanie kropki i przecinka do obliczeń działa.
W moim przypadku zrobiłem to tak:
da1=StrToFloat(StringReplace(StringReplace(LabeledEdit7->Text,".",DecimalSeparator,TReplaceFlags()),",",DecimalSeparator,TReplaceFlags()));
A wyświetlanie kropki zamiast przecinka zrobiłem w taki sposób:
Edit1->Text=FloatToStr(c);
Edit1->Text = StringReplace(Edit1->Text, ",", ".", TReplaceFlags() << rfReplaceAll);
gdzie "c" jest liczbą z obliczeń.
Niestety nie wiem jak to wsadzić do jednej linijki. Ale działa.
- Po kiego ci
rfReplaceAll
? Spodziewasz się kilku przecinków w liczbie? - Po kiego Przepuszczasz to przez
Edit1->Text
, nie można od razu?
Edit1->Text = StringReplace(FloatToStr(c),DecimalSeparator,".",TReplaceFlags());
Faktycznie lepiej. dzięki za pomoc.