2010-08-18 40 views

Respuesta

9

En su caso, el formato de la capa de vista, no en la capa de datos, es decir, leer todos los datos y truncar más tarde (como en el cliente C#)

+0

+1. Vincularlo así en repetidor funcionó '<% # DataBinder.Eval (Container.DataItem," FieldName "," {0: 0.00} ")%>'. Gracias por dirigirme a resolver el problema real. – IsmailS

+0

@Ismail: ¡Me alegro de que haya sido útil! :) P.S. Tuve los mismos problemas: http://stackoverflow.com/questions/1308259/rounding-down-decimal14-3-to-third-decimal-digit-in-sql-2008 http://stackoverflow.com/questions/2938296/remove-trailing-zeros-from-decimal-in-sql-server – abatishchev

+0

Pero esto no funcionaría en la edición de componentes como la cuadrícula EvExpress. Los formularios de edición están rotos por eso. – f470071

16
SELECT CAST(ROUND(123.4567, 2) AS MONEY) 

hará lo que usted está después

+0

Esto funciona, pero cuando asigno el valor a un campo en Repeater en mi página .aspx, de nuevo muestra dos ceros finales. Estoy usando Linq para sql. – IsmailS

+0

Puede usar un ToString() en su repetidor especificando el formato de la forma que desee. –

+0

+1 gracias por su respuesta. Tu respuesta también es correcta al mirar mi pregunta. Pero @abatishchev intentó resolver el problema más grande en lugar de solo responder mi pregunta. Por eso, he aceptado su respuesta. – IsmailS

0
SELECT FORMAT(123.4567,'N2') 

Se le ayudará a cabo

0

@IsmailS - Para mí, la imagen más grande es dejar que el formato de servidor de datos tanto como sea posible, especialmente cuando se trata de algo tan simple como un reparto en línea. Produce menos desorden en tu otro código. Por ejemplo, la fundición Precio, un campo de dinero:

select CAST(Price as numeric(17,2)) Price from PriceTable

YMMV - Es mi experiencia personal.

Cuestiones relacionadas