我需要一个函数,它返回字符串中数字的乘积:
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.
为什么以及如何修复代码?
您的代码乘以字符的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码在哪里.