Solved

Float Rounding when converted to varchar

Posted on 2013-06-05
9
442 Views
Last Modified: 2013-06-19
When converting a value from a Float to a varchar, it's rounding.  For example, I have a value, $35140.08, and when converted to a varchar it becomes 35140.1.  My ultimate goal is I need to present the value (which is a float datatype) with 2 decimal places with no decimal point, ie: 3514008.

SELECT REPLACE(CAST(CAST('35140.08' as FLOAT) as VARCHAR(255)),'.','') as MyValue

Open in new window


Any ideas?  I tried FLOOR, STR and neither helped.
0
Comment
Question by:lm1189
9 Comments
 
LVL 25

Expert Comment

by:Lee Savidge
ID: 39221868
SELECT REPLACE(CAST(CAST('35140.08' as numeric (24, 2)) as VARCHAR(255)),'.','') as MyValue
0
 
LVL 48

Expert Comment

by:PortletPaul
ID: 39221885
declare @f as float
set @f = 35140.088888888888

SELECT CAST(CAST(@f * 100 as bigint) as VARCHAR(255)) as MyValue
0
 
LVL 25

Expert Comment

by:Lee Savidge
ID: 39221900
Like it...

Even simpler:

SELECT cast(35140.08 * 100 as bigint)
0
 
LVL 48

Expert Comment

by:PortletPaul
ID: 39221904
:) I like simple
0
[Webinar] Disaster Recovery and Cloud Management

Learn from Unigma and CloudBerry industry veterans which providers are best for certain use cases and how to lower cloud costs, how to grow your Managed Services practice in IaaS clouds, and how to utilize public cloud for Disaster Recovery

 
LVL 69

Expert Comment

by:Scott Pletcher
ID: 39222142
What if the value internally is: $35140.086?

Do you want to see 3514008 or 3514009?
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 39224234
When converting a value from a Float to a varchar, it's rounding.
Just as an aside and I am sure you have already figured this out, but float is an approximate numeric value and typically should not be used in business applications.  Instead you should use numeric or money as they are fixed numeric types and therefore no rounding problems like this.
0
 
LVL 48

Accepted Solution

by:
PortletPaul earned 500 total points
ID: 39224411
[float]>>should not be used in business applications
I think it's actually forbidden in some places by regulation (but law is not my strong suit)
0
 
LVL 48

Expert Comment

by:PortletPaul
ID: 39258977
lm1189, Hi. Have we answered this question - could it be closed off?
0
 

Author Closing Comment

by:lm1189
ID: 39259304
I tried multiple methods but all had rounding issues, I eventually had to conver to the Money datatype which resolved my issues.
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SQL Query stumper 3 37
MSSQL: Replace text (typo) 7 34
SQL - insert empty rows into output results 11 25
TOOLS - convert T-SQL TO PL/SQL 3 9
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Viewers will learn how the fundamental information of how to create a table.

867 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

17 Experts available now in Live!

Get 1:1 Help Now