Re: FromDigits[{135,21}] -> 1371 (??!!)
- To: mathgroup at smc.vnet.net
- Subject: [mg53744] Re: FromDigits[{135,21}] -> 1371 (??!!)
- From: Veli Peltola <velipeltola at hotmail.com>
- Date: Wed, 26 Jan 2005 04:36:20 -0500 (EST)
- Organization: Helsinki Television
- References: <ct561v$e8b$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Zak Seidov wrote:
> Can anyone please explain what happens,
> if "Digits" actually are "integers":
...
> FromDigits[{135,21}]
> 1371 (??!!)
> FromDigits[{13,23}]
> 153 (??!!)
> FromDigits[{3,23}]
> 53 (??!!)
Writing numbers like 1592 is in a sense a shorter way of writing
1*10^3 + 5*10^2 + 9*10^1 + 2*10^0
Mathematica's FromDigits uses a formula like this. This means
FromDigits[{13,23}] = 13*10 + 23 = 153
The elements in the list don't even have to be natural numbers.
For example:
FromDigits[{1,-1}] = 10 - 1 = 9
FromDigits[{a,b}] = 10a + b
> And how to get integer 1323 from list {13,23}?
>
> So, or there is a better way:
> li={135,42};FromDigits[Flatten[{IntegerDigits[li[[1]]],IntegerDigits[li[[2]]]}]]->
> 13542
Using IntegerDigits and FromDigits together is probably the easiest way
to go. If you need to do this several times, you could define a function
for it.
fromIntegers[l_] := FromDigits[Flatten[IntegerDigits /@ l]]
Now for example:
fromIntegers[{12,34,567}] -> 1234567
Hope this helps.
--
Veli Peltola