title: How can I divide a number string by 1000 without converting to number?
body: <p>I am trying to make a certain string with Digits change form, so that it looks like below.</p>
  
  <p>Modified to show with Digits instead of X.</p>
  
  <p>So let´s set, i get a number, like this.</p>
  
  <p>234.123123123</p>
  
  <p>I need to change how it appears, for 3 digits before a Dot, it would need to become.</p>
  
  <p>0.234123123123</p>
  
  <p>And let´s say it´s 2.23123123123, that would become, 0.0023123123123</p>
  
  <p><strong>Now i will try to explain the Formula, bare with my English.</strong></p>
  
  <p>The formula needs to change the position of the Dot ".".
  You can see that it changes place, But you can also see that i am adding 0s.</p>
  
  <p>That is important, the 0s needs to be added IF the dot get´s to the far left (the beginning of the string).</p>
  
  <p>So how much must the Dot move?</p>
  
  <p>The Dot must Always move 3 steps to the left.</p>
  
  <p>And if it hit´s the wall (the start of the string) you need to add 0s, and then one 0s before the dot.</p>
  
  <p>So if the number is, 2.222222
  I will first have to move the dot to the left, let´s show step by step.</p>
  
  <pre><code>Step 1:
  .2222222
  
  Step 2:
  .02222222
  
  Step 3:
  0.02222222
  </code></pre>
  
  <p>It must Always be a 0 Before the Dot, it it ever hit the Start.</p>
  
  <p>It sounds more complicated then it is, it´s just that i don't know how to explain it.</p>
  
  <p>EDIT:</p>
  
  <p>My attempt:</p>
  
  <pre><code>      TextPos = InStr(1, TextBox4.Value, ".") - 2
  If (TextPos = 4) Then
       sLeft = Left(TextBox4.Value, Len(TextBox4.Value) - Len(TextBox4.Value) + 2)
        sRight = Right(TextBox4.Value, Len(TextBox4.Value) - 2)
        sFinal = (sLeft &amp; "." &amp; Replace(sRight, ".", ""))
        TextBox4.Value = Replace(sFinal, "-", "")
        End If
  If (TextPos = 3) Then
        TextBox4.Value = "0." + Replace(TextBox4.Value, ".", "")
        End If
  If (TextPos = 2) Then
        TextBox4.Value = "0.0" + Replace(TextBox4.Value, ".", "")
  End If
  If (TextPos = 1) Then
        TextBox4.Value = "0.00" + Replace(TextBox4.Value, ".", "")
  End If
  TextBox4.Value = Replace(TextBox4.Value, "-", "")
  </code></pre>
  
  <p><strong>If i /1000 it, may work, but it seems like it will alter the number, leaving it to fail.</strong></p>
  
  <pre><code>Original: 25.1521584671082
  
  /1000 : 2.51521584671082E-02
  </code></pre>
  
  <p>As you can see, it doesn't work as expected.</p>
  
  <p>It should become 0.0251521584671082E-02  (And of course i don't want " E- " to be there.
  So if it's possible to do this, but ONLY moving and not actually, dividing (i think excel is limited to how many numbers it can calculate with) then it will work.</p>
  
  <p>Worth Noting, the numbers shown are actually less (shorter) then the real number for some reason, if i write it down to a text file, it becomes this:</p>
  
  <p>2.51521584671082E-02251521584671082E-02</p>
  
  <p>So as you can see, i probably hit a Wall in the calculation, so it changes to Characters (I know math uses those, but no idea what they mean, and they are useless for me anyway).</p>
  
  <p>And i think it's because of them that it fails, not sure though.</p>
  
  <p>EDIT:</p>
  
  <p>Okay, by limiting to 15 decimals it will return the correct place, but i would like not to do this round about, should Excel really be limited to only 15 Decimals, or is it "Double,Float etc" that does this?</p>
  
  <p>EDIT 2:</p>
  
  <p>Tony's example provides this:</p>
  
  <pre><code>Original: 177.582010543847177582010543847
  Tony's: 0.1775820110177582011
  Round(15decimals): 0.1775820105438470177582010543847
  </code></pre>
  
  <p>Not really sure, but isn't it Incorrect, or perhaps i did something wrong?</p>
  
  <p>If possible, i want ALL decimals and number to stay in place, as everything is already correct, it's just that they are in the wrong place.</p>
  
  <p>/1000 solves this, but not in the best way, as it will recalculate instead of just moving.
  Normally i wouldn't care, the results are the same, but here it does matter as you can see.</p>
  
  <p>I can however think of a solution, where i till look for the position of the Dot, then cut out the last decimals, divide the Result by 1000, then later add the last decimals, though that is more of a hack , not sure if it will actually work.</p>
  
  <p><strong>I conclude that this is Answered, it does what i want, and the limitations is in the Calculation itself, not the Solution.
  All Solutions work pretty much in the same way, but i chose Tony's as he was first to comment the solution in my question.</strong></p>
  
  <p>Many Thanks everyone!</p>