Solved

VBA Single Data Type - keep results to one decimal place

Posted on 2009-05-05
1
1,382 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

0
Comment
Question by:ThePATMAN26
1 Comment
 
LVL 59

Accepted Solution

by:
Saurabh Singh Teotia earned 500 total points
ID: 24307423
Replace this line...
sngPercent2 = sngPercent2 - 0.1

with this..
sngPercent2 = round(sngPercent2 - 0.1,1)
This will take care of your problem...
Saurabh...
 
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Introduction This Article briefly covers methods of calculating the NPV and IRR variants in Excel as well as the limitations in calculating and interpreting IRR results. Paraphrasing Richard Shockley, author of my favourite finance reference tex…
This is pretty cool.  The purpose of this VB Script is to help you document where JAR (Java ARchive) files and specifically java class files are located so that you can address issues seen with a client or that you can speak intelligently with a dev…
The viewer will learn how to simulate a series of coin tosses with the rand() function and learn how to make these “tosses” depend on a predetermined probability. Flipping Coins in Excel: Enter =RAND() into cell A2: Recalculate the random variable…
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…

759 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now