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)
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:
For greater accuracy I should use a Decimal instead of a Double ( so I've been told ). Why then have Microsoft chosen to use DOUBLE for most of the functions that return a floating point value in the Math Class?
I am working on an application that allow the user to store data as numbers.These numbers are later on used for calculation. The number can be of any type and are saved as string. The problem is when they are used for calculation how can understand when it is better to treat them as doubles and when as decimals?
How come a double and decimal treat 3 and 3.0 and 3.00 different?
For example:
Dim dbl As Double = 1 / CInt(TextBox1.Text) MsgBox(dbl) If I enter 3 in the TextBox I get: 0.33... If I enter 3.0 I get: 0.033... If I enter 3.00 I get: 0.0033...
So, yes, I've tried with these three formats, and the problem remains the same:I have a string, "s"For Each s As String In stringarray and this array is recieving data from a streamreader that is reading a csv file. The data I'm having dificulty reading are these very specific numbers(yes, only these numbers, because phone numbers get home safe and sound).The numbers I'm talking about are usually decimal.ValueList.Add(Convert.ToDecimal(s))
Now, when I convert them like that, they always bring a "D" alongside with them. I've personally checked the string multiple times, and it just has a "1", and somehow, my list recieves "1D" as a number, same thing happens with decimal numbers(0.29D for example). I've tried with Doubles and Integers, the result is the same.
here is a very important matter to be corrected as soon as possible. generally,type double can display an answer correct to more than 20 decimal places. yes,it works fine until here except for exponential system. whenever i try to find a decimal raised to the power of a proper fraction, i get a correct answer but only upto 13 decimal places. that is not fair at all! it is important to get as high precision as possible. consider this example:-
[code...]
i want that number of correct decimal places or approximation,which a windows 7 calculator has. i believe that this is someway easy to get rid of. please support.it is important for programs like calculator,worksheets,databases,etc.
I am writing a program that asks the user for their name and the number of pieces they completed. The employees are paid more depending on the amount of pieces they have completed(i.e. <200 = .50 per piece, 200 to 399 = .55 per piece, etc.). I have to display the amount earned when the user enters the info and hits the calculate button. I have to use Select Case.
I was thinking this would be an easy program but I keep getting an error for each Case saying "Option Strict On disallows implicit conversions from 'Double' to 'Decimal'. I don't understand why it thinks it is a double. It says I can correct this problem by adding "Cdec" before each equation(i.e.
Is there such a thing as a type similar to a point, but contains a pair of decimals, or a pair of doubles, rather than integers? I searched the forums and google with no luck. I can't believe this has never come up before, I must have been using the wrong search terms.
Simple requirement to split a double value inputted into a string to decimal and fractional.I enter 12.1 and it splits it into
12 and then 0.0999999999999996
Where is my 0.0000000000000004 gone??? Did the cpu tax it?I have tried a few other tricks to split the number and i get the same result...The fractional results of each attempt
In the discussion in this thread: [URL] it was reveiled to me that vb.net, using double, could only calculate values up to 18 digits after decimal.... so I started thinking and came up with this class
Public Class LargeNumber Private pNumber As String
Public Sub New()
[CODE].............
I want to split the string into a series of doubles.... and than combine them into a large number.... The size of each double component should be 18 digits on a 32 bit computer... so that I will have room to add the last carrier...
I'm having some trouble converting a double to a string.I have a double value, like 43.64 and I need a string like this: "43.64"If I try to convert the double to a string I always get "43,64" what doesn't work for me..
I am trying to convert information stored in a file to a decimal (or ASCII) format, then write the contents of that file to a new file.
What I have is a list of files that are generated from a cash register. The documentation that was provided to me says that this particular file I am trying to work with has a length of 6, a width of 6, and that it's BCD type.
I've done quite a few google searches and can't seem to find a good solution. I know BCD numbers should be stored as 0000 format. But the problem I'm getting is when I read each part of the file (using my sr.read) I'm getting full numbers..and I am expecting the 0000 format. I'll get a 0, 0, 0, and then all of the sudden I"ll get a number that's 65,000..then I'll get a 34...and there doesn't seem to be any
I'm sure I'm doing something incorrect here, my knowledge of reading HEX, BCD, etc. is very minimal. I'm guessing it has to do with using a filestream, so I can use the fs.ReadByte() method..but when I tried that my program was literally chugging along for several minutes with no sign of ending.[code]...
How to convert a whole number into decimal..For example 70 to .70 because there are some price in my system that needed to be calculated by grams for example $5 per grams... I am saving the price in my database as an integer..
Very simple, I click a button and it shows the answer in the label. The answer to this is: 00:02:38 (according to excel)
But I want my Vb.net to change the decimals into the time as excel would do so. The answer vb gives me is: 0.001833786. So how can I change a decimal into a time?
I need to convert hex to a decimal in VB.NET. Found several examples in C#, but when I tried to convert to VB.NET I was not successful. An example of a hexadecimal number that I am trying to convert is"A14152464C203230304232323020572F544947455234352E".
The code below works until I try to convert the text box to a decimal. I think it might be because at the time of conversion the text box is empty. If thats the case, where could I do the conversion?[code]...