Problem in converting float to varchar

  • 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.

  • 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

  • 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

  • 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.

    _____________
    Code for TallyGenerator

  • Hi Madi,

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

  • 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

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply