Browse Source

correctly parse floats in scientific notation

GDScript incorrectly parsed float values in scientific notation
when no decimal point was given. "1e-5" was parsed as "15".

Fix this by not requiring a decimal point when we found an exponent
for the number to be considered a float.

Fixes #5267
Dennis Brakhane 9 năm trước cách đây
mục cha
commit
c246931f03
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  1. 1 1
      modules/gdscript/gd_tokenizer.cpp

+ 1 - 1
modules/gdscript/gd_tokenizer.cpp

@@ -725,7 +725,7 @@ void GDTokenizerText::_advance() {
 					if (hexa_found) {
 						int val = str.hex_to_int();
 						_make_constant(val);
-					} else if (period_found) {
+					} else if (period_found || exponent_found) {
 						real_t val = str.to_double();
 						//print_line("*%*%*%*% to convert: "+str+" result: "+rtos(val));
 						_make_constant(val);