字符串的产物

时间:2011-07-06 10:30:14

标签: erlang

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

SomeFunc("1234") -> 1 * 2 * 3 * 4 = 24

这是我的代码:

lists:foldr(fun(X, Y) -> X * Y end, 1, "1234").

但我得到6497400。

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

1 个答案:

答案 0 :(得分:6)

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

lists:foldr(fun(X, Y) -> (X-$0)*Y end, 1, "1234")

其中$0是字符'0'的ASCII码。