Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

Problem in converting float to varchar Expand / Collapse
Author
Message
Posted Tuesday, October 21, 2008 2:47 AM
SSC Rookie

SSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC Rookie

Group: General Forum Members
Last Login: Tuesday, August 12, 2014 7:30 AM
Points: 37, Visits: 119
The following query truncates the decimal characters when we convert it to varchar.

declare @d float
declare @d1 float
select @d = 34343.454
select @d1 = 676.1566545
select cast (@d as varchar(50)) + CHAR (9) + cast (@d1 as varchar(50))

ouput:
34343.5 676.157

but the required output is:
34343.454 676.1566545

Can anyone help to find a best solution for this ?
Thanks in advance.
Post #589007
Posted Tuesday, October 21, 2008 2:53 AM
SSCrazy

SSCrazySSCrazySSCrazySSCrazySSCrazySSCrazySSCrazySSCrazy

Group: General Forum Members
Last Login: Wednesday, July 30, 2014 8:23 AM
Points: 2,025, Visits: 2,521
I tried the below code

declare @d float
declare @d1 float
select @d = 34343.454
select @d1 = 676.1566545
select cast (@d as varchar(50))
select cast (@d1 as varchar(50))

I got the below output.

34343.453999999998

676.15665449999995



karthik
Post #589011
Posted Tuesday, October 21, 2008 5:43 AM
Old Hand

Old HandOld HandOld HandOld HandOld HandOld HandOld HandOld Hand

Group: General Forum Members
Last Login: Friday, May 23, 2014 5:59 AM
Points: 329, Visits: 470
aravind (10/21/2008)
The following query truncates the decimal characters when we convert it to varchar.

declare @d float
declare @d1 float
select @d = 34343.454
select @d1 = 676.1566545
select cast (@d as varchar(50)) + CHAR (9) + cast (@d1 as varchar(50))

ouput:
34343.5 676.157

but the required output is:
34343.454 676.1566545

Can anyone help to find a best solution for this ?
Thanks in advance.

declare @d float
declare @d1 float
select @d = '34343.454'
select @d1 = 676.1566545

select cast(cast (@d as decimal(12,3)) as varchar(20)) + CHAR (9) + cast(cast (@d1 as decimal(12,3)) as varchar(20))





Madhivanan

Failing to plan is Planning to fail
Post #589074
Posted Tuesday, October 21, 2008 11:38 PM
SSCarpal Tunnel

SSCarpal TunnelSSCarpal TunnelSSCarpal TunnelSSCarpal TunnelSSCarpal TunnelSSCarpal TunnelSSCarpal TunnelSSCarpal TunnelSSCarpal Tunnel

Group: General Forum Members
Last Login: Yesterday @ 3:25 PM
Points: 4,573, Visits: 8,354
aravind (10/21/2008)

Can anyone help to find a best solution for this ?
Thanks in advance.


I can.
Simply by opening BOL on related topic.
Post #589593
Posted Thursday, October 23, 2008 7:36 AM
SSC Rookie

SSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC Rookie

Group: General Forum Members
Last Login: Tuesday, August 12, 2014 7:30 AM
Points: 37, Visits: 119
Hi Madi,

The output wont be the one I expected. The decimal should not get truncated.
Post #590440
Posted Thursday, October 23, 2008 7:48 AM
Old Hand

Old HandOld HandOld HandOld HandOld HandOld HandOld HandOld Hand

Group: General Forum Members
Last Login: Friday, May 23, 2014 5:59 AM
Points: 329, Visits: 470
aravind (10/23/2008)
Hi Madi,

The output wont be the one I expected. The decimal should not get truncated.

Here it is
declare @d float
declare @d1 float
select @d = '34343.454'
select @d1 = '676.1566545'

select cast(cast (@d as decimal(12,3)) as varchar(20)) + CHAR (9) + cast(cast (@d1 as decimal(18,7)) as varchar(20))





Madhivanan

Failing to plan is Planning to fail
Post #590448
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse