Thursday, February 16, 2012

Calculating total from string

I don't know if this is a right place for this kind of question, but here we go...

I have a function that gets string ("2/3*(1500.0000+(-218.3300)+(-89.7000)+(-24.0000)-585.0000)"). Problem is that this returns 0:

select 2/3*(1500.0000+(-218.3300)+(-89.7000)+(-24.0000)-585.0000)

This gives right answer:

select 2.0/3.0*(1500.0000+(-218.3300)+(-89.7000)+(-24.0000)-585.0000)

Is there easy way to fix this?

check the datatype used for the parameter/calculation... if it is integer change to float

Madhu

|||Hi,

you will have to CAST the integer values to decimal types vefore calculating, otherwise SQL Server will assume that the result will be integer as well, calculating everything using the integer type.

HTH, Jens K. Suessmeyer.

http://www.sqlserver2005.de|||

No that's not the point...

SELECT 2/3 returns also 0 if you write it in Query Analyzer.

|||And there is no other ways to do it in sql server?|||

check this

declare @.i1 int

declare @.i2 int

declare @.i3 int

declare @.d1 float

declare @.d2 float

declare @.d3 float

Set @.d1=2

Set @.d2=3

set @.d3=@.d1/@.d2

print @.d3

Set @.i1=2

Set @.i2=3

set @.i3=@.i1/@.i2

print @.i3

Madhu

|||

Yes I understand what you mean, but I have only one parameter (string) that includes formula. This formula can be short or very long... example 100+100*9*(100/0.608-100) and so on...

No comments:

Post a Comment