We help IT Professionals succeed at work.

VBA Single Data Type - keep results to one decimal place

ThePATMAN26
ThePATMAN26 asked
on
1,465 Views
Last Modified: 2012-06-22
I have a loop that takes a number from the user, tests an Excel document for instances of this number, and then subtracts one tenth from the input number, and tests again. The loop operates until the number ends up at zero.

Now the problem that I have is after two or three loops the result of the Input = Input - 0.1 begins resulting in a number with several decimal places when I want to keep it to just one. (i.e. at the the third time the loop operates starting at 1 it results in 0.6999999 instead of just 0.7.

I need it to remain at the one decimal place so I get an even number each time, in sequence (i.e. 1, 0.9, 0.8, 0.7 and so on until Zero.) I'm using Single data type. Is there a better data type to use?
Private Sub btnProcess_Click()
 
Dim strPercent2 As String
strPercent2 = Me.txtPercentage.Value
 
Dim sngPercent2 As Single
Dim strSearch As String
 
If IsNumeric(strPercent2) Then
sngPercent2 = CSng(strPercent2)
 
    Do While sngPercent2 > 0.1
 
    strSearch = CStr(sngPercent2)
 
 
 
    Dim i As Long
    i = 1
    Do Until i > Cells(65536, "a").End(xlUp).Row
        If InStr(Trim(Cells(i, "a").Value), strSearch) > 0 Then
 
            Rows(i - 1 & ":" & i + 3).delete
        Else
            i = i + 1
        End If
       
    Loop
 
        MsgBox CStr(sngPercent2)
        Application.ScreenUpdating = True
        sngPercent2 = sngPercent2 - 0.1
 
    Loop
 
 
Else
End If
 
End Sub

Open in new window

Comment
Watch Question

CERTIFIED EXPERT
Top Expert 2015
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.