hola leonardo, yo tuve algo parecido, lo que hice fue una funcion que recibe el 
valor numerico y trunca en dos decimales, si es 0 trunca en 4 y si no tiene 
decimalesformatea a dos decimales en cero.
Vos lo queres hacer con string.format pero me aprece que esa logica no se puede 
utilizar ahi.

Saludos

Javier
  ----- Original Message ----- 
  From: [EMAIL PROTECTED] 
  To: [email protected] 
  Sent: Thursday, March 01, 2007 5:30 PM
  Subject: [puntonet] String.Format


  Hola colegas

  Estoy tratando de formatear un string cuyo valor viene de una variable 
Decimal.

  Necesito que me muestre siempre 2 decimales si son útiles y como máximo 4 
decimales si no hay decimales útiles (distintos de cero) hasta la cuarta 
posición.

  Es decir, son valores que no van a ser más pequeños que 0,0001 y que si la 
parte decimal útil tiene más de 2 cifras, que no me muestre más de dos.

   

  Si recibo 0,000789  debería obtener 0,0007

  Si recibo 0,003021 debería obtener 0,003

  Si recibo 0,218992 debería obtener 0,21

  Si recibo 1 debería obtener 1,00

   

  Siempre dos decimales a menos que esos dos decimales no sean útiles, en cuyo 
caso se va a buscar el primero útil hasta un máximo de 4

  Si recibo 0,00000002  entonces me quedará 0,0000  o 0,00 es lo mismo, pero en 
el negocio de mi aplicación eso nunca va a pasar. Se trata de un sistema de 
compra y venta de monedas internacionales.

  En este momento estoy usando String.Format("{0:0.0000}") pero esto me fuerza 
a que siempre haya cuatro dígitos y me quedan números como

  1,2300  o 0,0100  que no quiero.

  No pude encontrar la forma de hacer la cantidad de dígitos dinámica y 
condicionada a que sean decimales útiles y no ceros.

  ¿Alguna idea?  

   

  Gracias

  Leonardo 

   

   

   

   

Responder a