[Question]
  [
People keep telling me that the square of a number is the number multiplied by itself. This is obviously false. The correct way to square a number is to make it into a square, by stacking it on top of itself a number of times equal to the number of digits it has, and then reading all the numbers from the resultant square, both horizontally (from left to right only) and vertically (from up to down only), and then adding them together. So, for the number 123, you first create the square:
```
123
123
123
```
Then you take all of the rows and columns from the square, and add them together: 
```
123+123+123+111+222+333
```
Which gives us a result of `1035`. 
For negative numbers, you stack normally (remember that you only count the number of *digits*, so the negative sign is not included in the length), and then read the horizontal numbers normally (with negative signs), and then ignore the negative signs for the vertical numbers. So, for the number `-144` we get the square:
```
-144
-144
-144
```
Which gives us `-144-144-144+111+444+444`, which equals `567`
For numbers with only one digit, the square is always equal to the number doubled (read once horizontally and once vertically). So `4` gives us 
```
4
```
Which gives us `4+4`, which equals `8`. 
For numbers with decimal parts, stack normally (remember that only *digits* are counted in the number of times you stack the number, and therefore the decimal point is not counted), and ignore the decimal symbols when reading the vertical numbers. For example, the number `244.2` gives us
```
244.2
244.2
244.2
244.2
```
Which gives us `244.2+244.2+244.2+244.2+2222+4444+4444+2222`, which equals `14308.8`.
Fractional or complex numbers cannot be squared. 
## Your Task:
I'm tired of squaring numbers my way by hand, so I've decided to automate the process. Write me a program or function that takes a float or string, whichever you prefer, as input and returns the result of squaring it my way. 
## Examples:
```
123    -> 1035
388    -> 3273
9999   -> 79992
0      -> 0
8      -> 16
-6     -> 0
-25    -> 27
-144   -> 567
123.45 -> 167282.25
244.2  -> 14308.8
2      -> 4
-0.45  -> 997.65
0.45   -> 1000.35
```
## Scoring:
My hands are getting cramped from writing out all those squares, and my computer doesn't support copy/paste, so the entry with the least amount of code for me to type (measured in bytes for some reason?) wins! 
  
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E), 7 bytes
```
þSDg×+O
```
[Try it online!](https://tio.run/##MzBNTDJM/f//8L5gl/TD07X9///XNdAzMQUA "05AB1E – Try It Online")
Explanation
```
þSDg×+O Implicit input
þ       Keep digits
 S      Get chars
  D     Duplicate
   g    Length
    ×   Repeat string(s)
     +  Add (implicit input added to all elements)
      O Sum
```
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), ~~13~~ 12 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
```
fØDẋ€L$ŒV+VS
```
A monadic link accepting a list of characters (a well-formed decimal number, the single leading zero being a requirement for **-1 < n < 1**) and returning a number.
**[Try it online!](https://tio.run/##y0rNyan8/z/t8AyXh7u6HzWt8VE5OilMOyz4////SroGeiamSgA "Jelly – Try It Online")**
14 bytes to accept and return numbers (input limited at **+/-10-5** by `ŒṘ`): `ŒṘfØDẋ€L$ŒV+⁸S`.
### How?
```
fØDẋ€L$ŒV+VS - Link: list of characters         e.g. "-0.45"
 ØD          - yield digit characters                "0123456789"
f            - filter keep                           "045"
      $      - last two links as a monad:
     L       -   length (number of digit characters) 3
   ẋ€        -   repeat list for €ach digit          ["000","444","555"]
       ŒV    - evaluate as Python code (vectorises)  [0,444,555]
          V  - evaluate (the input) as Jelly code    -0.45
         +   - addition (vectorises)                 [-0.45,443.55,554.55]
           S - sum                                   997.65
```
[Answer]
## Haskell, ~~59~~ 56 bytes
```
f s|l<-filter(>'.')s=0.0+sum(read<$>(s<$l)++[c<$l|c<-l])
```
The input is taken as a string.
[Try it online!](https://tio.run/##FYdLCsMgFACv8hAhilXsJ6ULk4uELCRVKn2G4Et3ubs1i5lhPp6@AbHWCHSg0zHhHooYO9NJGqyxin5ZlODfjo@CHEep1LS0HovTOMuafVphgK2kdQcO2W8QYWLX251d2Kuhn01tzaM/z56d6x8 "Haskell – Try It Online")
How it works
```
l<-filter(>'.')s      -- let l be the string of all the numbers of the input string
f s   = 0.0 + sum     -- the result is the sum of (add 0.0 to fix the type to float)
   read<$>            -- turn every string of the following list into a number
   s<$l               -- length of l times the input string followed by
   [c<$l|c<-l]        -- length of l times c for each c in l   
```
[Answer]
# [Japt v2](https://github.com/ETHproductions/japt), 16 bytes
```
o\d
l
¬xpV +V*Ng
```
[Test it online!](http://ethproductions.github.io/japt/?v=2.0a0&code=b1xkCmwKrHhwViArVipOZw==&input=Ii0wLjQ1Ig==)
### Explanation
```
o\d    First line: Set U to the result.
o      Keep only the chars in the input that are
 \d      digits. (literally /\d/g)
l    Second line: Set V to the result.
l    U.length
¬xpV +V*Ng    Last line: implicitly output the result.
¬             Split U into chars.
 x            Sum after
  pV            repeating each V times.
     +V*Ng    Add V * first input (the sum of the horizontals) to the result.
```
[Answer]
# C# (.NET Core), ~~150~~ ~~141~~ 133 bytes
~~*Saved 9 bytes thanks to @TheLethalCoder*~~  
*Saved another 8 bytes thanks to @TheLethalCoder*
```
a=>{var c=(a+"").Replace(".","").Replace("-","");int i=0,l=c.Length;var r=a*l;for(;i<l;)r+=int.Parse(new string(c[i++],l));return r;}
```
[Try it online!](https://tio.run/##dVFRa8IwEH73VxzxJV1jqK4Ot1hfBJ8cyBzsQX0IWVoDNRlJdIzS3@7SVix72AfJ5S7fHd/dCTcSxsqrKLlzsLGmsPw0qAYQ4Dz3SsDFqE945Upj563Sxe4A3BYuajkds8H2x3l5oquzFvO8NNwTaM0CcsiuPFtUF25BZJjHCEX0TX6VXEiMKCJ//FHrM6U9qCwhZSboWurCH1mTbzP@ULLcWMzUvGSRjbPApBtuncRafkOnEYudiuMDKaOIWenPVoNl9ZXd1bbSQideOi@4kw4yaNJv8Tuv76/BePJI4HE2I/AcQCAhEN6jp3Am03CN05Q0JJpOcwKTNKWTxoafpAu15l6yZoNeUNgCF0fArQIQoHQvLvpHz23mS6OdKSX9sMrLtdLytim6MvbEPUbLUAT2qErqPXrZ@2pcIwIiLAiLiL6bbTczlNDhEEVhZL3CQXfX118 "C# (.NET Core) – Try It Online")
Takes a string as an input and outputs the 'squared' number as a float.
---
This code follows the following algorithm:
1. Create a new string from the input, but without the decimal points and symbols, so we can get our length and the numbers for the columns from there.
2. Calculate the input times the length of the string we created at point 1.
3. For each column in our 'square', create a new string with the column number and the row length and add it to our result.
Example:
Input: `-135.5`
1. If we replace decimal points and symbols we get the string `1355`, which has a length of `4`.
2. The input times 4: `-135.5 * 4 = -542`.
3. Now we create new strings for each column, parse them and add them to our result:  
`1111`, `3333`, `5555`, `5555`.
If we sum these numbers up we get `15012`, which is exactly what our program will output.
[Answer]
# [Brachylog](https://github.com/JCumin/Brachylog), 23 bytes
```
{∋ịṫ}ᶠ⟨≡zl⟩j₎ᵐ;[?]zcịᵐ+
```
[Try it online!](https://tio.run/##SypKTM6ozMlPN/r/v/pRR/fD3d0Pd66ufbhtwaP5Kx51LqzKeTR/Zdajpr6HWydYR9vHViWDVGydoP3/v5KugZ6JqdL/KAA "Brachylog – Try It Online")
Brachylog doesn't go well with floats...
Explanation:
```
{∋ịṫ}ᶠ⟨≡zl⟩j₎ᵐ;[?]zcịᵐ+ Takes string (quoted) input, with '-' for the negative sign
     ᶠ                  Return all outputs (digit filter)
{   }                    Predicate (is digit?)
 ∋                        An element of ? (input)
  ị                       Convert to number (fails if '-' or '.')
   ṫ                      Convert back to string (needed later on)
      ⟨   ⟩             Fork
       ≡                 Identity
         l               Length
                        with
        z                Zip
             ᵐ          Map
            ₎            Subscript (optional argument)
           j              Juxtapose (repeat) (this is where we need strings)
              ;         Pair with literal
               [ ]       List
                ?         ?
                  z     Zip
                   c    Concatenate (concatenate elements)
                     ᵐ  Map
                    ị    Convert to number
                      + Add (sum elements)
```
[Answer]
## [Husk](https://github.com/barbuz/Husk), 15 bytes
```
§+ȯṁrfΛ±TṁrSR#±
```
Takes a string and returns a number.
[Try it online!](https://tio.run/##yygtzv7//9By7RPrH@5sLEo7N/vQxhAQKzhI@dDG////K@ka6JmYKgEA "Husk – Try It Online")
## Explanation
It's a bit annoying that the built-in parsing function `r` gives parse errors on invalid inputs instead of returning a default value, which means that I have to explicitly filter out the columns that consist of non-digits.
If it returned 0 on malformed inputs, I could drop `fΛ±` and save 3 bytes.
```
§+ȯṁrfΛ±TṁrSR#±  Implicit input, e.g. "-23"
             #±  Count of digits: 2
           SR    Repeat that many times: ["-23","-23"]
         ṁr      Read each row (parse as number) and take sum of results: -46
  ȯṁrfΛ±T        This part is also applied to the result of SR.
        T        Transpose: ["--","22","33"]
     fΛ±         Keep the rows that contain only digits: ["22","33"]
   ṁr            Parse each row as number and take sum: 55
§+               Add the two sums: 9
```
[Answer]
# [Python 3](https://docs.python.org/3/), ~~95 94 87 85~~ 84 bytes
```
def f(i):l=[x for x in i if"/"<x];k=len(l);print(k*float(i)+sum(int(x*k)for x in l))
```
[Test Suite](https://tio.run/##PU3BDsIgFLu/ryCcYIa5MWbm5v7Cm/FgJmRkCMtkEb8e4WIPTdqm7fr1s7NNnNxTjhjj@JQKKaJpb8ZbQMptKCBtkUZa4SO@hPuwjEZaYuiwbtp6shTKuIdPlcN7f5FshWKh/6ahNKZBu@6eUJou4DNrI9F122Uvg5xI/qax5g00XQfnBKigA3YCxltgtRCQwlK0wIUoOXBgVVaZfg).
# [Python 3](https://docs.python.org/3/), 78 bytes
```
lambda x:sum(float(i*len(z))for z in[[i for i in str(x)if"/"<i]]for i in[x]+z)
```
[Test Suite.](https://tio.run/##PYpBDsIgEEX3nIJ0BYq1BTS10ZNUFhglTkKhaTGpvTxOTXSS@fP@ywzv9IxBZXe5Zm/7293SuZ1ePXM@2sRg4x@BLZy7ONKFQug6oCsDMp3SyGYOrtgXZzDm57vZbBee/7WWShDVNIKccASpBEHeHXHlAaPWWhB8KjU2qXUp8aCvvmJN0w4jhMQcA87zBw "Python 3 – Try It Online")
The second approach is a port to Python 3 inspired by @officialaimm's solution.
[Answer]
# [Python 2](https://docs.python.org/2/), ~~81~~ 74 bytes
***-7 bytes thanks to @Mr. Xcoder***: `'/'<i`
* Takes in integer or float, returns float.
```
lambda x:sum(float(i*len(z))for z in[[i for i in`x`if"/"<i]]for i in[x]+z)
```
[Try it online!](https://tio.run/##PYphC4IwEIa/71cMP221TOcKk/ola6BRwwPdxBbY/vw6gzq495734aZ36L2TyV6uaejG272jS/N8jcwOvgsMNsPDsci59TONFJzWQFcG5HZpwWb77AzG/JxezDby9K@lrASp6lqQE44ghSDIuyOuPGCUSgmCT7nCJpXKJR70xVesaZppBheoZcDTBw "Python 2 – Try It Online")
## Explanation:
Say `123.45` is given as input. `[i for i in`x`if"/"<x]` gives a list of stringified integers `['1','2','3','4','5']` (which is also `z`). Now we iterate through `[x]+z` i.e. `[123.45,'1','2','3','4','5']`, multiplying each element by `len(z)`, here `5` and converting each to a Float (so that strings also convert accordingly), yielding `[617.25,11111.0,22222.0,33333.0,44444.0,55555.0]`. Finally we calculate the `sum(...)` and obtain `167282.25`.
[Answer]
# JavaScript, ~~75~~ 62 bytes
```
a=>(b=a.match(/\d/g)).map(b=>a+=+b.repeat(c),a*=c=b.length)&&a
```
[Try it online](https://tio.run/##HY7dDoMgDIVfhSuFiaiMLS4LvsjcRUX8iwOjZK/POpv09JwvTdoFvnCYfd5C7nxv46Aj6IZ2GsQHgplo0fbFyBimDWkDmc46sdvNQqCGcbhoozuxWjeGiSUJxKfx7vCrFasf6auSV06udc3JA4uTkhP0@R1b3lAqpTjBJaEwSaWExIG8PMFf3@dpILohA4UsTfGZxc@Opq1DH38)
*-2 bytes thanks to [Arnauld](https://codegolf.stackexchange.com/users/58563/arnauld)*  
*-5 bytes thanks to [Shaggy](https://codegolf.stackexchange.com/users/58974/shaggy)* (I though the function must receive a number, but now I see that lot of other answers receive string too)
[Answer]
# [Perl 5](https://www.perl.org/), ~~37~~ 33 + 1 (-p) = ~~38~~ 34 bytes
```
$_*=@n=/\d/g;for$\(@n){$_+=$\x@n}
```
[Try it online!](https://tio.run/##K0gtyjH9/18lXsvWIc9WPyZFP906Lb9IJUbDIU@zWiVe21YlpsIhr/b/f4N/@QUlmfl5xf91fU31DAwN/usWAAA "Perl 5 – Try It Online")
*Used some tricks from Dom's code to shave 4 bytes*
**Explained:**
```
@n=/\d/g;    # extract digits from input
$_*=@n;      # multiply input by number of digits
for$\(@n){   # for each digit:
  $_+=       # add to the input
  $\x@n}     # this digit, repeated as many times as there were digits
             # taking advantage of Perl's ability to switch between strings
             # and numbers at any point
```
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 17 bytes
```
ŒṘfØDẋ€L©$ŒV;ẋ®$S
```
[Try it online!](https://tio.run/##y0rNyan8///opIc7Z6QdnuHycFf3o6Y1PodWqhydFGYN5B1apxL8//9/XQM9E1MA "Jelly – Try It Online")
[Answer]
# Pyth, 18 bytes
```
s+RvQsM*RF_lB@jkUT
```
[Try it here.](http://pyth.herokuapp.com/?code=s%2BRvQsM%2aRF_lB%40jkUT&input=%22-0.45%22&debug=0)
[Answer]
# [Pyth](http://pyth.readthedocs.io), ~~21~~ 20 bytes
```
K@jkUTQ+smv*lKdK*lKv
```
[Test suite.](http://pyth.herokuapp.com/?code=K%40jkUTQ%2Bsmv%2alKdK%2alKv&test_suite=1&test_suite_input=%22123%22%0A%22388%22%0A%229999%22%0A%220%22%0A%228%22%0A%22-6%22%0A%22-25%22%0A%22-144%22%0A%22123.45%22%0A%22244.2%22%0A%222%22%0A%22-0.45%22%0A%220.45%22&debug=0)
Uses a completely different approach from [@EriktheOutgolfer's answer](https://codegolf.stackexchange.com/questions/136564/square-a-number-my-way/136575#136575), which helped me golf 1 byte in chat, from 22 to 21.
---
# Explanation
```
K@jkUTQ+s.ev*lKbK*lKv
K@jkUTQ                   - Filters the digits and assigns them to a variable K.
         m                - Map. Iterated through the digits with a variable d
           v              - Evaluate (convert to float).
            *lKd          - Multiplies each String digit by the length of K.
        s                 - Sum
       +                  - Sum
                 *lKvQ    - Multipies the number  by the length of the digits String
```
[Answer]
# [Octave](https://www.gnu.org/software/octave/), ~~100~~ 82 bytes
Thanks a lot @TomCarpenter for teaching me that assignments have a return value and saving me `18` bytes!
```
@(v)(n=nnz(s=strrep(num2str(abs(v)),'.','')-'0'))*v+sum(sum(s'*logspace(0,n-1,n)))
```
[Try it online!](https://tio.run/##HcnBCsIwDIDhV/GWZKayzl0Lew/1EEftxWWjWQv68nV4@OGDf513qbGlcG8TVkINql@0YHvOcUMty3AQ5WnHJYYLMAA56IGoq2crC/6D7r0m22SO2LM6z0pETXKWz6soJj7d/HBl58fxQe0H "Octave – Try It Online")
### Ungolfed/Explanation
```
function f=g(v)
  s=strrep(num2str(abs(v)),'.','')-'0';  % number to vector of digits (ignore . and -)
  n=nnz(s);                              % length of that vector
  f=n*v+sum(sum(s'*logspace(0,n-1,n)))   % add the number n times and sum the columns of the square
end
```
The way this works is that we basically need to add the number itself `n` times and then add the sum of the columns. Summing `s' * logspace(0,n-1,n)` achieves the sum of columns, for example if `v=-123.4` that matrix will be:
```
[ 1     10    100   1000;
  2     20    200   2000;
  3     30    300   3000;
  4     40    400   4000 ]
```
So we just need to `sum` it up and we're done.
[Answer]
# [Swift 4](https://swift.org/blog/swift-4-0-release-process/), ~~139~~ 134 bytes
```
func f(s:String){let k=s.filter{"/"<$0};print(Float(s)!*Float(k.count)+k.map{Float(String(repeating:$0,count:k.count))!}.reduce(0,+))}
```
[Test Suite.](http://swift.sandbox.bluemix.net/#/repl/597d7ba8c5cfd27e04c56f0d)
---
# Explanation
* `func f(s:String)` - Defines a function `f` with an explicit String parameter `s`.
* `let k=s.filter{"/"<$0}` - Filters the digits: I noticed that both `-` and `.` have smaller ASCII-values than all the digits, and `/` is between `.`, `-` and `0`. Hence, I just checked if `"/"` is smaller than the current character, as I did in my Python answer.
* `print(...)` - Prints the result.
* `Float(s)!*Float(k.count)` - Converts both the String and the number of digits to Float and multiplies them (Swift does not allow Float and Int multiplication :()). So it adds the number `x` times, where `x` is the number of digits it contains.
* `k.map{Int(String(repeating:$0,count:k.count))!` - `k.map{}` maps over `k` with the current value `$0`. `String(repeating:$0,count:k.count)` takes each digit, creates a String of `x` identical digits and `Float(...)!` converts it to a Floating-point number.
* `.reduce(0,+)` - Gets the sum of the list above.
* And finally `+` sums the two results.
---
# Let's take an example!
Say our String is `"0.45"`. First off, we filter the digits, so we are left with `0, 4, 5`. We convert `"0.45"` to Float and multiply by the number of digits: `0.45 * 3 = 1.35`. Then we take each digit and turn it into a String repeating that digit until it fills the width of the square (how many digits there are): `0, 4, 5 -> 000, 444, 555`. We sum this, `000 + 444 + 555 = 999`. Then we just add the results together: `1.35 + 999 = 1000.35`.
[Answer]
# C#, ~~139~~ 137 bytes
```
using System.Linq;n=>{var d=(n+"").Where(char.IsDigit);return d.Sum(i=>int.Parse(new string(i,d.Count())))+new int[d.Count()].Sum(_=>n);}
```
*Saved 2 bytes thanks to @Ian H.*
[Try it online!](https://tio.run/##jY/BasMwDIbveQrRk01bQ7PcsuTSMRhsUNZDD2MMz1ZbQSJvttMxSp49SxroNhis/0ES0ifxy4R57dh1rGsMb9ogrD9DxFrdE78nxwR6mUqHAKtTPXYGhagjGTg4svCgiYU8j76hQbcNm2vrmtcKZzDmErZQdFyUx4P2YKEAwdPJRKrNHj0Ks9de3YUb2lGUucfYeAar1k0tqCiJo1ppH1AwfvQ2PPFO0MyqpWs4CtlrOkx67uncfD5tvxQly7zt8uSXw6Xj4CpUG08R@8dRbMUivZIy/xebL7LsEu4iKM0ylQ7gn@QjansCf1xqkzG23Rc "C# (Mono) – Try It Online")
Full/Formatted version:
```
namespace System.Linq
{
    class P
    {
        static void Main()
        {
            Func<double, double> f = n =>
            {
                var d = (n + "").Where(char.IsDigit);
                return d.Sum(i => int.Parse(new string(i, d.Count()))) + new int[d.Count()].Sum(_ => n);
            };
            Console.WriteLine(f(123));
            Console.WriteLine(f(-144));
            Console.WriteLine(f(4));
            Console.WriteLine(f(244.2));
            Console.ReadLine();
        }
    }
}
```
[Answer]
# Mathematica, 107 bytes
```
(t=Length[s=#&@@RealDigits[#]//.{a___, 0}:>{a}];If[IntegerPart@#==0,t++];t#+Tr[FromDigits@Table[#,t]&/@s])&
```
[Answer]
# PHP, ~~78~~ 88 +1 bytes
```
for($e=preg_match_all("#\d#",$n=$argn);~$c=$n[$i++];)$s+=str_repeat($c,$e);echo$s+$n*$e;
```
Run as pipe with `-nR`.
May yield warnings in PHP 7.1. Repace `$c,$e` with `$c>0?$c:0,$e` to fix.
[Answer]
# [Python 3](https://docs.python.org/3/), 68 ~~70~~ ~~73~~ ~~77~~ bytes
```
lambda n:sum(float(n)+int(_*sum(x>"/"for x in n))for _ in n if"/"<_)
```
[Try it online!](https://tio.run/##ZY3dCsIwDEbvfYqymzWKc/2ZTFGfRCgVKRa2dMwJ8@lruwshmquck@TL8J4eAVV052vsbH@7W4bH56vnrgt24ggbjxM366zmS7ErXBjZzDwyBMi9WXrmXZqdDMRhzAeOl0KqEmD1ZdW2hA@piKgJ0eXtnqJsKAutiUjPK013pNaVpIZm1L8Xf0IsAfED "Python 3 – Try It Online")
Loops over every digit character and repeats it by the number of digit characters overall, makes that into an integer, and adds that to `n`. This way `n` gets added `d` times, the horizontal part of the sum, along with the digit repetition, which is the vertical part. Originally used `str.isdigit` but `>"/"`, thanks to others in this thread, saved a lot of bytes. Saves two bytes by taking `n` as a string, but the output is messier.
```
lambda n:sum(n+int(_*sum(x>"/"for x in str(n)))for _ in str(n)if"/"<_)
```
[Try it online!](https://tio.run/##Vc3BCsIwDAbgu09RdmoU59ZG2UR9EqFMpFhw2eg6mE9fW0SMOeVL/pDxFR4D6WjP1/js@tu9E3Sc5l7SxlGQZp375VLsCjt4sQhHYgpeEgDkgfkNnE2hk4E4@nxpZa00wOor3TRMbSrGivU8tj1wqD1XjciYnpXI9wqxVNz8tvrPfhjf "Python 3 – Try It Online")
[Answer]
# [Japt](https://github.com/ETHproductions/japt) v2.0a0 [`-x`](https://codegolf.meta.stackexchange.com/a/14339/), 10 [bytes](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)
Takes input as a string.
```
f\d çU
cUy
```
[Try it](https://petershaggynoble.github.io/Japt-Interpreter/?v=2.0a0&flags=LXg&code=ZlxkIOdVCmNVeQ&input=IjEyMyI) or [run all test cases](https://petershaggynoble.github.io/Japt-Interpreter/?v=2.0a0&code=ZlxkIOdVCmNVeQ&footer=Vng&input=WwoiMTIzIgoiMzg4IgoiOTk5OSIKIjAiCiI4IgoiLTYiCiItMjUiCiItMTQ0IgoiMTIzLjQ1IgoiMjQ0LjIiCiIyIgoiLTAuNDUiCiIwLjQ1IgpdLW1S)
```
f\d çU\ncUy     :Implicit input of string U                    > "-0.45"
f               :Match (returns an array)
 \d             :  RegEx /\d/g                                 > ["0","4","5"]
    çU          :Fill with U                                   > ["-0.45","-0.45","-0.45"]
      \n        :Reassign to U
        c       :Concatenate
         Uy     :  U transposed                                > ["-0.45","-0.45","-0.45","---","000","...","444","555"]
                :Implicit output of sum of resulting array     > 997.65
```
]