sasllc
asked on
How to round and truncate long decimal strings in vb.net for compact framework
Earlier today I asked this question:
I will have string data coming in, with 1, 2, or 3 digits preceding the decimal point, and 12 digits after the decimal point. An example would be 12.918171615141. I need to truncate everything past the 4th decimal digit, so that my example string would look like 12.9181.
Better yet would be if I could ROUND it properly, so that in this example I would end up with 12.9182. But to do so, I assume I would have to move the string to a numeric variable and use a math function. IF this is feasible, I need some sample code to handle this as well, i.e. how to properly get it into a numeric variable, then do the rounding, and get it back in to a string. TIA
And the most complete answer I got was this:
Dim yv as Double
if Double.TryParse(strABC, out yv) then
'strABC a valid decimal.
yv = Math.Round(yv, 3, MidpointRounding.AwayFromZ ero)
strABC = yv.ToString()
else
yv = nothing
end if
I closed out the question too soon, because now that I'm able to try this code, I am getting syntax errors. I suspect that some of this may be because I'm working in the compact framework environment with its limitations. Unfortunately I failed to mention this in my earlier question.
Specifically, here are the errors I am getting:
1) In the line that says "if Double.TryParse(Me.txtLocT ot.Text, out yv) then", it is saying that "TryParse is not a member of Double", and "name out is not declared", and "comma or valid expression expected" at the end of that line.
2) In the line that says "yv = Math.Round(yv, 3, MidpointRounding.AwayFromZ ero)", it says "MidpointRounding is not declared".
I have messed with it for quite a while, but getting nowhere. So, any suggestions to will be appreciated. TIA
I will have string data coming in, with 1, 2, or 3 digits preceding the decimal point, and 12 digits after the decimal point. An example would be 12.918171615141. I need to truncate everything past the 4th decimal digit, so that my example string would look like 12.9181.
Better yet would be if I could ROUND it properly, so that in this example I would end up with 12.9182. But to do so, I assume I would have to move the string to a numeric variable and use a math function. IF this is feasible, I need some sample code to handle this as well, i.e. how to properly get it into a numeric variable, then do the rounding, and get it back in to a string. TIA
And the most complete answer I got was this:
Dim yv as Double
if Double.TryParse(strABC, out yv) then
'strABC a valid decimal.
yv = Math.Round(yv, 3, MidpointRounding.AwayFromZ
strABC = yv.ToString()
else
yv = nothing
end if
I closed out the question too soon, because now that I'm able to try this code, I am getting syntax errors. I suspect that some of this may be because I'm working in the compact framework environment with its limitations. Unfortunately I failed to mention this in my earlier question.
Specifically, here are the errors I am getting:
1) In the line that says "if Double.TryParse(Me.txtLocT
2) In the line that says "yv = Math.Round(yv, 3, MidpointRounding.AwayFromZ
I have messed with it for quite a while, but getting nowhere. So, any suggestions to will be appreciated. TIA
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I have VS 2013 and tried it on a project using mobile device template and it does compile. I tried looking for documentation but could not find anything specific to mobile api support. I do not know if I will be of any help with this issue.
ASKER
'TryParse' is not a member of 'Double'.
Name 'MidpointRounding' is not declared.
Any idea how to get around these two problems? I am using Visual Studio 2008, developing for a mobile device.