Let's say I want to convert a Double x to a Decimal y. There's a lot of ways to do that:
1. var y = Convert.ToDecimal(x); // Dim y = Convert.ToDecimal(x) 2. var y = new Decimal(x); // Dim y = new Decimal(x) 3. var y = (decimal)x; // Dim y = CType(x, Decimal) 4. -- no C# equivalent -- // Dim y = CDec(x)
Functionally, all of the above do the same thing (as far as I can tell). Other than personal taste and style, is there a particular reason to choose one option over the other?
EDIT: This is the IL generated by compiling the three C# options in a Release configuration:
1. call valuetype [mscorlib]System.Decimal [mscorlib]System.Convert::ToDecimal(float64) --> which calls System.Decimal::op_Explicit(float64)
Is there an efficient method in VB to check if a string can be converted to a double?I'm currently doing this by trying to convert the string to a double and then seeing if it throws an exception. But this seems to be slowing down my application.
Follow-Up available: There's a follow-up with further details, see Convert MBF to IEEE.
I've got some legacy data which is still in use, reading the binary files is not the problem, the number format is. All floating point numbers are saved in MBF format (Single and Double). I've found a topic about that on the MSDN boards but that one only deals with Single values. I'd also would like to stay away from API-Calls as far as I can.
Edit: Just in case somebody needs it, here is the VB.NET Code (it's Option Strict compliant) I ended up with (feel free to convert it to C# and edit it in):
''' <summary>Converts a MBF Single to an IEEE Single</summary> ''' <param name="src">The MBF Single value</param> ''' <returns>The converted IEEE Single value</returns>
Iam using VB 2005 on Vista This is a sample of what I am doing:
Public Class Form 1 Dim WC As String Private Sub Button1_Click
[Code]...
How do I get around this? What I am trying to do is, I really want to use TextBox's for input to enter numbers when the program is running and I also want a MsgBox to appear if an input is not entered because these numbers are important to a final formula further down.
Let just say I have an Integer like 10,000 (that's the VALUE in want to reach). So, I have another integer like 2500 (that's my current VALUE). Third I have another Integer about 350 PER HOUR. To reach 10,000 I need 7,500 (well I already have 2,500). How long must I wait to reach the 10,000 when the increase is about 350 a Hour. Okay, that's easy: 7,500 / 350 = 21,428571 Hours. BUT how can I convert this double to a timespan? Or how is it possible to add this double value to the current Date to get the Date + Time when I reach the Value?
data table contain column named as Fld_primary. this column contain value like 0.00 it is double datatype in mysql table.i want store that datatable value in double variable. am always getting error when i convert to double datatype.
my code ------- Dim ds5 As dataset1.DTSUMDataTable = TA5.GetData(users) Dim dttot As Double dttot = CType(ds5("fld_primary").ToString, Double)
Error:Conversion from string "fld_primary" to type 'Integer' is not valid.
I am trying to convert a string to double and it is giving error. Bye the way it is not giving error on my PC but it gives on some pc's where other clients are using. String is retrieved from xml data.
<data><vitals> <username>aiglemedia</username> <balance>49.60</balance> </vitals></data> vb code Dim curBalance As Double xmlNode = xmlDoc.GetElementsByTagName("vitals")......xmlDoc contains the above xml data curBalance = System.Convert.ToDouble(xmlNode.Item(0).Item("balance").InnerText)... I think so error is on this line.
Below is the link for the error given by the client who is using the app [URL]
im having trouble understanding this question for a homework assignment. I need to write the PSEUDOCODE for the following scenario, but i got no idea about how to convert a hexadecimal number to a decimal number..You are required to input a two digit hexadecimal number eg. 3f (digits can be entered separately) and calculate the equivalent decimal number. (note the decimal number will be between 0 and 255) . output the decimal number
I am trying to figure out how to calculate the number of years it takes to double a user defined number. I have tried to take the number entered and multiply it by twelev and divide by two.
how can i double the '12' each time the variable is used?
What im trying to do is have a textbox which the user writes in a number, the number they enter then determines the amount of times a variable is written in a textbox.
so if the user were to put '3' into the textbox and click go, it would print hello12hello12hello12, how can i increase the number 12?
what i want it to do is look like this when the user presses go: hello12hello24hello36
Dim Latitude As Double = row("fltLatitude") Dim Longitude As Double = row("fltLongitude")
Most of the lat/longs that are being fetched from the db using SP are retrieved in properly, except for a couple of records which do not include a period to indicate a lat/long value.I have tried using these:
I'm familiar with programming/scripting.I started playing with Visual Basic when I realized my tech school had it installed on the network computers, and became a bit addicted (within a few days) of the possibilities it contains.I've started writing something basic.. a number guessing game in a Windows Application. The layout may not be optimal/strategically formed, because I'm not familiar with the language yet.[code]...MsgBox("You've got it! The number was: " + Rand, MsgBoxStyle.Information, "Winner!")'This line is highlighted with this message:'Conversion from string "You've got it! The number was: " to type 'Double' is not valid.
The problem i m facing is that i m getting all numbers in this format
1- if it is double then 123.45
2- if it is integer then 123.00 which is wrong
how to format a number wether it is in decimal or integer.if it is decimal then something like 123.56 or if it is integer then 123 not 123.00.Tell me the generalized string function and how to use it..
When I read a value from text box I want to make sure user has entered a number(int/float/double etc.) not a string. Is there any function to check it? otherwise how do i validate it.
I am using two textBox's. The first to enter the data. The second to convert to answer the program complies with no error, the debugger cannot convert data type from string to double.
[Code]....
why does the program not convert the textbox txtFahrenheit from string to double?