字符串的产物

dem*_*mas 0 erlang

我需要一个函数,它返回字符串中数字的乘积:

SomeFunc("1234") -> 1 * 2 * 3 * 4 = 24
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

lists:foldr(fun(X, Y) -> X * Y end, 1, "1234").
Run Code Online (Sandbox Code Playgroud)

但我得到了6497400.

为什么以及如何修复代码?

Mar*_*ner 6

您的代码乘以字符的ascii代码,即49*50*51*52.为了获得您想要的结果,请使用

lists:foldr(fun(X, Y) -> (X-$0)*Y end, 1, "1234")
Run Code Online (Sandbox Code Playgroud)

$0字符'0'的ASCII码在哪里.