Definition at line 154 of file str.cpp.
154 {
156 float sign = 1.0f;
157 float fraction = 0.0f;
158 float divisor = 1.0f;
159 int isFractional = 0;
160
162
163
164 if (len == 0) {
165 return 0.0f;
166 }
167
168
170 (str[
pos] ==
' ' || str[
pos] ==
'\t' || str[
pos] ==
'\n' ||
171 str[
pos] ==
'\r' || str[
pos] ==
'\f' || str[
pos] ==
'\v')) {
173 }
174
175
176 if (
pos < len && str[
pos] ==
'-') {
177 sign = -1.0f;
179 }
else if (
pos < len && str[
pos] ==
'+') {
181 }
182
183
185 if (str[
pos] >=
'0' && str[
pos] <=
'9') {
186 if (isFractional) {
187 divisor *= 10.0f;
188 fraction += (str[
pos] -
'0') / divisor;
189 } else {
190 result = result * 10.0f + (str[
pos] -
'0');
191 }
192 }
else if (str[
pos] ==
'.' && !isFractional) {
193 isFractional = 1;
194 } else {
195
196 break;
197 }
199 }
200
201
202 result = result + fraction;
203
204
205 return sign * result;
206}
Result type for promise operations.
References atoff(), and pos.
Referenced by atoff(), and fl::StringFormatter::parseFloat().