What DataType Is Best ... Float, Double Or Decimal?

Sep 25, 2006



I am using sql express 2005 and sql server 2005 with C# 2.0.

I am a bit confused about which data type i should be using for several fields.

Right now I am declaring all of my fields in sql server as float for everything except for money fields which are using money.

When loaded into C# these fields are converted to double and decimal because C# does not have a float datatype.



Should I be using Decimal or Double for everything instead?

Here are a few examples

QtyInvoiced (float) - holds the number of items invoice

possible values look like this 1.0, 1.25 or 1.5



PercentDiscount (float) - holds a percentage

possible values look like this

10.25, 20.50, 50.00



I appreciate the help.

View 9 Replies


ADVERTISEMENT

SQL Server 2008 :: Difference Between Money And (Float Or Decimal) Datatype

Jan 16, 2013

What is the difference between Money and (Float or Decimal) Datatype. If we use Float or Decimal instead of Money, will we loose any functions..?

View 4 Replies View Related

Convert A Binary Float To FLOAT Datatype

Apr 9, 2007

I can't take full credit for this. I want to share this with Jeff Moden who did the important research for this calculation here.

All I did was just adapting some old code according to the mantissa finding Jeff made and optimized it a little


Some test codeDECLARE@SomeNumber FLOAT,
@BinFloat BINARY(8)

SELECT@SomeNumber = -185.6125,
@BinFloat = CAST(@SomeNumber AS BINARY(8))

SELECT@SomeNumber AS [Original],
CAST(@SomeNumber AS BINARY(8)) AS [Binary],
dbo.fnBinaryFloat2Float(CAST(@SomeNumber AS BINARY(8))) AS [Converted],
@SomeNumber - dbo.fnBinaryFloat2Float(CAST(@SomeNumber AS BINARY(8))) AS [Error]

And here is the code for the function.CREATE FUNCTION dbo.fnBinaryFloat2Float
(
@BinaryFloat BINARY(8)
)
RETURNS FLOAT
AS
BEGIN
DECLARE@Part TINYINT,
@PartValue TINYINT,
@Mask TINYINT,
@Mantissa FLOAT,
@Exponent SMALLINT,
@Bit TINYINT,
@Ln2 FLOAT,
@BigValue BIGINT

SELECT@Part = 1,
@Mantissa = 1,
@Bit = 1,
@Ln2 = LOG(2),
@BigValue = CAST(@BinaryFloat AS BIGINT),
@Exponent = (@BigValue & 0x7ff0000000000000) / EXP(52 * @Ln2)

WHILE @Part <= 8
BEGIN
SELECT@Part = @Part + 1,
@PartValue = CAST(SUBSTRING(@BinaryFloat, @Part, 1) AS TINYINT),
@Mask =CASE WHEN @Part = 2 THEN 8 ELSE 128 END

WHILE @Mask > 0
BEGIN
IF @PartValue & @Mask > 0
SET @Mantissa = @Mantissa + EXP(-@Bit * @Ln2)

SELECT@Bit = @Bit + 1,
@Mask = @Mask / 2
END
END

RETURNSIGN(@BigValue) * @Mantissa * POWER(CAST(2 AS FLOAT), @Exponent - 1023)
END
Thanks again Jeff!


Peter Larsson
Helsingborg, Sweden

View 3 Replies View Related

Decimal And Double

Sep 27, 2007

what is the exact difference between double and decimal data type? with example

View 1 Replies View Related

Float Vs. Decimal

Jun 29, 1998

We are having problems with rounding errors on large monetary calculations in sql server 6.5

The calculations include float fields (for volumes and unit of measure conversions in product movements). I was wondering if the float being "approximate" could be the problem.

IF it is, why would I want to store things as a float instead of a dec(28,14)?
Is it faster to compute numbers stored as approximate binaries? Will we see a big performance hit if we switch some of the table`s field`s to decimals?

Thanks in advance.

View 3 Replies View Related

Float Or Decimal?

May 4, 2004

When should I choose decimal over float and vice versa?

Mike B

View 4 Replies View Related

Float Vs Decimal

Nov 22, 2006

select convert(float,'1.2334e+006')1233400.0select convert(decimal(20,2),'1.2334e+006')Server: Msg 8114, Level 16, State 5, Line 1Error converting data type varchar to numeric.Is there any way around?Is there any set options? I tried arithabort or arithignore and theydon't work.Thanks.

View 2 Replies View Related

Convert Varchar To Float / Decimal?

Jan 10, 2012

I have a field in my database that is stored as varchar. The values are usually contain a decimal, and should have really been a float or decimal. In order for me to do analytics in my BI environment, I need to convert this to a float or decimal.

eg of values.

10.00
20.00
0.00
15.00

or could be missing when I use cast(value as float) or cast(value as decimal(9,2)) or convert(float, value) I get an error

Msg 8114, Level 16, State 5, Line 2

Error converting data type varchar to numeric.

View 2 Replies View Related

Convert Float To Decimal Errors

May 18, 2006

I'm trying to move records from a SQL table with a float column to a DB2 database that has the column defined as Decimal (8,2) It keeps crashing saying it has a type mismatch problem. I tried changing my source command to pass in the column already converted and it still crashes on this. I also tried doing a data conversion task to do the conversion and I still get the same error. Any ideas?

View 3 Replies View Related

Can Anyone Help With With Datatype Float

Aug 30, 2007

I have some engineering data in my table and the db designer is representing it with a float datatype. Here's what is happening. If I query on a record based on id num and get a row and put it in text boxes in my Windows App, min_riv_hd_dia (the float) is 0.026<14 zeroes>2. If I try to query and get that same record again but this time based on id num and min_riv_hd_dia equal to 0.026<14 zeroes>2, I get no row found. If I just do a select on this row based on id number, sql server displays it as 0.026. But if I query with 0.026 as my value, still the row is not found. If I query min_riv_hd_dia > 0.026, the record is found.

So my question is, how can I tell the exact value that must be input in my search criteria in order to find this row?

Thank you so much if you can help!

View 4 Replies View Related

Reporting Services :: Convert Value Into Double Or Decimal

Aug 12, 2012

Filtrate the value in the column by using filter function..I get error message due to decimal and double.How should I convert to value 55 into double or decimal? Today, I'm using SSRS 2012.

View 4 Replies View Related

How Do I Round And Truncate A Float To 2 Decimal Places?

Jun 29, 2004

I have a float of 70.83333333343

If I do this

SET @Output=ROUND(@Output, 2, 1) -- @Output is DECLARED as FLOAT


I get this:
70.82999999999999

I want:
70.83

How do I do that?
Thanks in advance...

View 2 Replies View Related

Formatting A Float Variable To 2 Decimal Places

Dec 20, 2004

Hey,

I am filling a temp table with various float variables and I need to format one particular column to 2 decimal places.

Does anyone know the correct syntax to do this, and should it be done before filling the temp table or when I select what I needs from the temp table?

Thanks

View 3 Replies View Related

Format Money Or Float 2 Decimal Places

Mar 24, 2008

How do I format the money or float field types to 2 decimal places during a SELECT statement?

View 4 Replies View Related

How To Format Float Datatype?

Apr 5, 2000

For example, I have a float datatype field with a value of .2501
I select using ROUND(Field,3) and get .25 as a result, but what I need to display is .250 (three decimal places.) How can this be done?
Thanks,
Paul

View 3 Replies View Related

Sum Float Datatype Column

Feb 12, 2014

I'm using this query to sum the values. The cost column is a float datatype and what could I differently do here to sum the cost. I'm unable to sum the cost.

Also is there any way I change the datatype to int for Cost column without losing the data.

select ID, MAX(Date) Date, SUM(Cost) Cost, MAX(Funding) Funding from Application
group by ID

View 4 Replies View Related

T-SQL (SS2K8) :: Counting Decimal Places In A Float Field

Jul 3, 2014

I have a table with three columns: UniqID, Latitude, and Longitude.

I need to write a query to identify when the latitude has more than 6 decimal places past the decimal. Same with Longitude. Values in these attributes can be a negative number. These fields are FLOAT.

View 7 Replies View Related

How To Convert Nvarchar Datatype To Float

May 16, 2008

Hi,

how to convert nvarchar datatype to float?

Regards
Prashant

View 10 Replies View Related

Function Required To Convert Packed Decimal In Binary(6) To Int (or Float)

Mar 8, 2007

I have been given some data from a Mainframe (AS400?) which has some fields coded in Packed Decimal. I have been able to load the data into a SQL2005 database table, but I now need to convert the Packed Decimal data in the binary(6) field to the appropriate integer (or float) value.

The field contains values such as the following:-

0x20202020200C

0x202020022025

0x20202020DFFA

I don't know how to interpret these. Has anyone got a function that can do this for me?

I've read several articles online that explain how packed decimal works, but none tell me how to interpret the last of my three examples. Can you help?

Thanks!

View 2 Replies View Related

Wrong Values Stored For Datatype Float

Aug 3, 2006

In SQL Server for a field of datatype float(8),
if i insert a value 2.62 , it saves it as 2.6200000000000001
like so for other values also.
But in frontend i can see the right values.

Could any of you help me in fixing up this issue?

Thanks in advance.

~ chaitanya

View 1 Replies View Related

Is It Possible To Change The Datatype In A Excel File From The Float To Varchar

Sep 10, 2007

Hi,
   I have a excel file and i am trying to import zip codes to the database... but the some of the zip codes start with 06902 but the excel file treats them as float but i want to treat them as varchar...
 
How can i do it.
Regards
Karen

View 2 Replies View Related

Wrong Values Stored In A Field Of Datatype Float

Aug 3, 2006

Hi,

When i try to insert a value in to a field of datatype float(8), it is storing the wrong values(approximate values).

For example, if i try to insert 2.62 , it takes it as 2.6200000000000001

But i can see the correct values displayed in the frontend.



Heard that there is a fix available for this issue.

Could any of you help me in getting the details about that fix?



Thanks in advance.

~ Chaitanya



View 4 Replies View Related

Problem Inserting Sql Query Into Database Float Datatype Field Using SQL Transaction

Aug 22, 2006

I have this problem of inserting my query into database field. My code is as of below.
The @AVERAGESCORE parameter is derived from
Dim averagescore As Single = (122 * 1 + 159 * 2 + 18 * 3 + 3 * 4 + 0 * 5) / (122 + 159 + 18 + 3 + 0)
and the value returned is  (averagescore.toString("0.00"))
However, I have error inserting the averagescore variable into a field of datatype float during the transaction. I have no problems when using non transactional sql insert methods. What could be the problem?
  Try
Dim i As Integer
For i = 0 To arraySql.Count - 1
myCommand = New SqlCommand
Dim consolidatedobjitem As ConsolidatedObjItem = arraySql(i)
myCommand.CommandText = sqlStr
myCommand.Connection = myConnection
myCommand.Transaction = myTrans
With myCommand.Parameters

.Add(New SqlParameter("@AVERAGESCORE", consolidatedobjitem.getaveragescore))

End With
myCommand.ExecuteNonQuery()
Next
myTrans.Commit()
myConnection.Close()
Catch ex As Exception
Console.Write(ex.Message)
myTrans.Rollback()
myConnection.Close()
End Try 

View 7 Replies View Related

Decimal DataType

Jun 25, 2004

Hi,
I have a column ,Lines decimal(10,2).

The data in this column is not properly displayed in crystal reports.
Eg: the data in the column is 24.34, it's being displayed like 345234352

Why this is so? When the data type is int, there's no problem. Because of this I'm not able to display decimals in my report. Which data type in sql server is apt for my task.

Please help.

Thanks

M.L.Srinivas

View 2 Replies View Related

Decimal Datatype

Jan 12, 2004

I have looked at the SQL Docs, and am trying to create a test table that uses a column of Numeric Datatype. But for some reason, it is rounding to the nearest Integer as opposed to using a decimal value.

Heres the SQL I use to create the table:

CREATE TABLE Test (ID int IDENTITY(1,1), Test_Numeric numeric(2,0))

dont laugh if its obvious, cause I dont use decimal values very much :P

View 3 Replies View Related

Decimal DataType

Mar 22, 2004

Good Morning

Shopping for a bit of assistance with the decimal datatype in a SQL Server 7.0 database. I am sending data with 2 decimal places from a
VB6 program to the databse table and the decimal positions are getting cut-off. IE .10 is turning into 0. I have the field in my databse table
defined as decimal, 5 long and a precision of 2. Any ideas what I am doing wrong?

Thanks for the help,
EJD

View 2 Replies View Related

Decimal Points In Money Datatype

Oct 30, 2007

Hi,

The default number of decimal points for 'money' data type is 4. Can I change it as 6?

Eg 120.123456

Thanks!

View 7 Replies View Related

How To Set Money Datatype Decimal Field.

Dec 27, 2007



Please Help me ...

How to set Money datatype decimal field with example .

View 5 Replies View Related

Float Type Steals My Decimal Points And Money Type Kills My Query

Mar 28, 2008

Happy Friday!
A while since I have posted a question, and this one is probably real easy.
I am trying to store numeric values from a php form in MSSQL 2000 database. However, the columns are set to float and if the value is 1.00, when entered into the table it is saved as 1

If I change the column type to money, the query fails, with an error message of conversion of datatype varchar to datatype money statement terminated.

anybody know what I need to do? do I need to do something in my query to specify that this is NOT varchar data?

View 2 Replies View Related

Decimal Datatype Conversion From DB2 To SSIS Throught Microsoft OLE DB Provider For DB2

May 1, 2007

Hi All,



Here is a description of the issue I'm facing about decimal datatype conversion from DB2 to SSIS throught Microsoft OLE DB Provider for DB2.

I first discovered it when I tried to use a LookUp trans. and selected a decimal typed field. I was unable to validate it and clicking the OK button threw the error copied below:


TITLE: Microsoft Visual Studio
------------------------------

Error at Data Flow Task [DTS.Pipeline]: The "output column "MFIXFRA" (317)" has a value set for length, precision, scale, or code page that is a value other than zero, but the data type requires the value to be zero.



------------------------------
ADDITIONAL INFORMATION:

Exception from HRESULT: 0xC0204019 (Microsoft.SqlServer.DTSPipelineWrap)

------------------------------
BUTTONS:

OK
------------------------------

Some workarounds on this issue led me to two other strange behaviours:


- If I create a dataflow task to perform a raw copy of a DB2 table to a brand new table in SQLServer destination (by clicking "new" instead of choosing an existing destination table), generated "create table" script for decimal fields is quite different from source table. For example, a source field declared Dec(15,2) is translated as Dec(29,5), and so on.


- Quite same behaviour if I try to derive a column using as derived column trans. If the source column is a decimal, it's scale and precision are interpreted ramdomly.



Any idea welcome



André

View 6 Replies View Related

Converting A Data Type Double To A Type Float Using A Data Adapter &&amp; SSCE 3.5

Feb 13, 2008

Hi,

I can populate a dataTable with type double (C#) of say '1055.01' however when I save these to the CE3.5 database using a float(CE3.5) I lose the decimal portion. The 'offending' code is:


this.court0TableAdapter1.Update(this.mycourtsDataSet1.Court0);

this.mycourtsDataSet1.AcceptChanges();

this.court0TableAdapter1.Fill(this.mycourtsDataSet1.Court0);


This did not happen with VS2005/CE3.01.

I have tried changing all references to decimal (or money in CE3.5) without luck.

I'm beginning to think that string may be the way to go!!!!!!!

Can someone shed some light on my problem.

Thanks,

Later:

It's necessary to update the datatable adapter as the 3.01 and 3.5 CE are not compatible.

View 4 Replies View Related

SQL Server 2008 :: DOUBLE Precision For Calculations / Convert To Double?

May 19, 2011

I am performing a series of calculations where accuracy is very important, so have a quick question about single vs double precision variables in SQL 2008.

I'm assuming that there is an easy way to cast a variable that is currently stored as a FLOAT as a DOUBLE prior to these calculations for reduced rounding errors, but I can't seem to find it.

I've tried CAST and CONVERT, but get errors when I try to convert to DOUBLE.

For example...

SELECT CAST(1.0/7.0 AS FLOAT)
SELECT CONVERT(FLOAT, 1.0/7.0)

both give the same 6 decimal place approximation, and the 6 decimals make me think this is single precision.

But I get errors if I try to change the word FLOAT to DOUBLE in either one of those commands...

SELECT CAST(1.0/7.0 AS DOUBLE)

gives "Incorrect syntax near )"

SELECT CONVERT(DOUBLE, 1.0/7.0)

gives "Incorrect syntax near ,"

View 2 Replies View Related

DB Engine :: Double Row Added From A Source Table That Did Not Have Double Record

Aug 28, 2014

Every night we connect to a remote server using Linked Server and copy details from that database to a loading table, then load it into the 'real' table in our own environment. The remove database we load it from has indexes/primary keys that match the 'real', however the 'loading' table itself does not have any indexes or primary keys, both are SQL Server 2005 machines.

In the loading table we first of all truncate it then do a select insert statement from the remote server, then we then truncate the 'real' table and load iit from the 'loading' table.

The issue is when we attempted to load it into our 'real' table from our loading table there was a duplicate row, and our process failed with a Primary Key violation.

I checked the source with does have the same primary key's in, it did not contain a duplicate row and I checked the loading table and that did contain a duplicate row.

My question this is in what circumstances this could happen ?

View 5 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved