Я новичок в Erlang и пытаюсь создать простое приложение командной строки, в котором пользователь вводит ширину и высоту пола, стоимость квадратного фута пола, и им возвращается цена. По сути, я просто принимаю три целочисленных значения и возвращаю продукт.
23> c(costcalc).
{ok,costcalc}
24> costcalc:start().
Calculate the cost of flooring based on width, height, and cost per square foot.
Width in feet: 5
Height in feet: 5
Cost in dollars per square foot: $4
** exception error: an error occurred when evaluating an arithmetic expression in function costcalc:start/0 (costcalc.erl, line 23)
Вот код, который я использую:
start() ->
io:format("Calculate the cost of flooring based on width, height, and cost per square foot.\n"),
W = string:to_integer(io:get_line("Width in feet: ")),
H = string:to_integer(io:get_line("Height in feet: ")),
C = string:to_integer(io:get_line("Cost in dollars per square foot: $")),
Cost = W * H * C,
io:fwrite(Cost).
Строка 23 - это Cost = W * H * C,
, которая должна быть 100. Когда я запускаю 5 * 5 * 4.
в оболочке напрямую, она вычисляется без проблем. Я также должен отметить, что это происходит независимо от того, использую ли я string:to_integer(), без которого, как мне кажется, я могу обойтись.
Что мне не хватает?