8
votes

Obtenez seulement deux points décimaux dans l'argent DataType dans SQL Server

<%# DataBinder.Eval(Container.DataItem, "FieldName","{0:0.00}") %>

0 commentaires

5 Réponses :


21
votes
SELECT CAST(ROUND(123.4567, 2) AS MONEY)
Will do what you are after

3 commentaires

Cela fonctionne, mais lorsque j'attribue la valeur à un champ de répéteur sur ma page .aspx, il affiche à nouveau deux zéros traînants. J'utilise LINQ vers SQL.


Vous pouvez utiliser un tostring () dans votre répéteur spécifiant le format sur la façon dont vous le souhaitez.


+1 Merci pour votre réponse. Votre réponse est également juste en train de regarder ma question. Mais @abatishchev a essayé de résoudre le problème plus important au lieu de simplement répondre à ma question. C'est pourquoi, j'ai accepté sa réponse.



11
votes

le cas échéant, format sur la couche de vue, pas sur la couche de données, c'est-à-dire toutes les données et tronquez-la plus tard (comme dans le client C #)


3 commentaires

+1. Lier comme ceci dans le répéteur travaillé <% # dataxier.eval (conteneur.datitem, "nom de terrain", "{0: 0.00}")%> . Merci de me diriger à résoudre le problème réel.


@ IMPAIL: Heureux que cela ait aidé! :) P.s. J'ai eu les mêmes problèmes - Stackoverflow.com/questions/1308259/... Stackoverflow.com/Questtions/2938296/...


Mais cela ne fonctionnerait pas dans l'édition de composants comme la grille de DevExpress. Les formulaires d'édition sont brisés par cela.



1
votes
SELECT ROUND(123.4567, 2,1) 
See http://msdn.microsoft.com/en-us/library/ms175003(SQL.90).aspx

0 commentaires

2
votes
SELECT FORMAT(123.4567,'N2')
It will Help You Out

0 commentaires

3
votes

@ ismails - pour moi, la plus grande image est de laisser le format du serveur de données autant que possible, surtout quand c'est quelque chose d'aussi simple qu'un casting en ligne. Cela donne moins d'encombrement dans votre autre code. Par exemple, casting prix , champ d'argent:

Sélectionnez Cast (prix sous forme numérique (17,2)) Prix à partir de PriceTable

ymmv - c'est mon expérience personnelle.


0 commentaires