typ float jest podobny do typu double, więc można tak:
- Kod: Zaznacz cały
float a = Edit1->Text.ToDouble();
istnieje też sposób na konwersję do float:
- Kod: Zaznacz cały
float a = StrToFloat(Edit1->Text);
w obydwu przypadkach jeżeli Edit nie zawiera liczby zostanie zwrócony wyjątek, można to obejść używając funkcji
StrToFloatDef(AnsiString S, long double Default), która w przypadku, gdy nie można dokonać konwersji zwraca wartość domyślną określoną w drugim argumencie funkcji:
- Kod: Zaznacz cały
float a = StrToFloatDef(Edit1->Text, 0.0);
należy pamiętać o tym, że w przypadku zmiennych zmiennopozycyjnych (ułamków) podając wartości tych zmiennych w kodzie używamy jako separatora kropki, podczas gdy w gotowym programie podając wartość w obiekcie np. Edit1 jako separatora używamy przecinka.
W kodzie zawsze musisz używać jako separatora dziesiętnego kropki, lecz w przypadku gotowego programu możesz zdefiniować jaki ma być separator w trzecim argumencie funkcji wymuszając np. użycie kropki zamiast przecinka:
- Kod: Zaznacz cały
TFormatSettings fSet;
fSet.DecimalSeparator = '.';
float a = StrToFloatDef(Edit1->Text, 0.0, fSet);
pamiętaj, że zmienna float może osiągnąć maksymalna wartość
999999.96, powyżej tej wartości nie będzie juz pokazywać wartości dziesiętnej, lecz wartość będzie zaokrąglana do całości, dla większych wartości lepiej skorzystać ze zmiennej double, która daje wartości dziesiętne przy maksymalnej wartości
99999999999999.94.
dział:
porady zmienne