Skip to content

Commit f76c8fe

Browse files
author
José Valim
committed
Support E in scientific notation for floats
1 parent 8b19b0b commit f76c8fe

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lib/elixir/src/elixir_tokenizer.erl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,11 +709,13 @@ tokenize_number([$_,H|T], Acc, Bool) when ?is_digit(H) ->
709709
tokenize_number(T, [H|Acc], Bool);
710710

711711
%% Check if we have e- followed by numbers (valid only for floats);
712-
tokenize_number([$e,S,H|T], Acc, true) when ?is_digit(H), S == $+ orelse S == $- ->
712+
tokenize_number([E,S,H|T], Acc, true)
713+
when (E == $E) or (E == $e), ?is_digit(H), S == $+ orelse S == $- ->
713714
tokenize_number(T, [H,S,$e|Acc], true);
714715

715716
%% Check if we have e followed by numbers (valid only for floats);
716-
tokenize_number([$e,H|T], Acc, true) when ?is_digit(H) ->
717+
tokenize_number([E,H|T], Acc, true)
718+
when (E == $E) or (E == $e), ?is_digit(H) ->
717719
tokenize_number(T, [H,$e|Acc], true);
718720

719721
%% Finally just numbers.

lib/elixir/test/elixir/inspect_test.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ defmodule Inspect.NumberTest do
123123

124124
test :float do
125125
assert inspect(1.0) == "1.0"
126+
assert inspect(1.0E10) == "1.0e10"
126127
assert inspect(1.0e10) == "1.0e10"
127128
assert inspect(1.0e-10) == "1.0e-10"
128129
end

0 commit comments

Comments
 (0)