2010-01-22 2 views

Répondre

1

Utilisez cette requête:

SELECT ROUND(2.0/3.0, 2) 
0

Select cast(2.0/3.0 as decimal(3,2)) as result, devrait aider.

acclamations

0

Essayez cette

select cast(ROUND(2/3.0, 2) as decimal(2,2)) 
0
ALTER FUNCTION GetDecimalFromDivided(@interger1 INT, @interger2 INT , @round INT) 
RETURNS FLOAT AS 
Begin 
RETURN ROUND(@interger1/cast(cast(@interger2 AS VARCHAR) + '.0' AS FLOAT),@round) 
END 
0
SELECT 2.0/3.0 AS RawResult 

Format client dans

Commentaires sur la fonction dans votre réponse ...

ALTER FUNCTION GetDecimalFromDivided (@float1 float, @float2 float, @round INT) 
RETURNS float AS 
Begin 
RETURN ROUND (@float/@float2, @round) 
END 
  • Pourquoi envoyer un entier?
  • ronde n'a pas de sens avec un type de retour de flotteur. Vous pouvez obtenir 0,6700000000001 par exemple
  • Si vous voulez corriger les décimales, utilisez la décimale (p, 2). Mais alors votre ROUND est inutile.

Vous devriez vraiment format dans le client!

Questions connexes