2010-05-14 15 views
5

tengo una cantidad variable en mi clase ...cómo cambiar de decimal a usar .net%

valor de esta cantidad está viniendo a partir de bases de datos como algo decimal .0.000654345

mientras se muestra en la cuadrícula que necesito mostrar esto como valor% .. puede anyboydy ayudarme ..

gracias

+2

Um, multiplicar por 100 y poner un signo de porcentaje después del resultado? –

Respuesta

3

Multiplicar por 100 y analizar el resultado como una cadena y formatear adecuadamente ...

String parsedNum = String.Format("{0}%", num * 100); 
+2

+1 para usar String.format y no convertir el número en una cadena. Tenga en cuenta que '" {0}% "' se puede cambiar a, por ejemplo, '" {0.00}% "' o similar para controlar cuántos dígitos mostrar después del decimal. Si haces esto, el número se redondeará. – Brian

+0

Se ha eliminado +1. La respuesta de Michael Haren es mejor. – Brian

3

Bueno, eso realmente depende de lo que está destinado a representar en su forma actual.

puede ser tan simple como multiplicar por 100 ... pero también podría ser 10.000 dependiendo del significado exacto de "Cantidad".

¿Qué quieres que se muestre para 0.000654345?

+2

¿Por qué se aceptó esta respuesta? Es un buen punto (realmente debería ser un comentario de la OMI, sin embargo), pero en realidad no es una respuesta. ¿O Jon Skeet está usando magia negra para obtener más reputación? – Brian

+0

@Brian: ¿Qué quiere decir con "aceptado"? Al menos no es la respuesta aceptada. Además, creo que está bien responder con una pregunta si planea editar su respuesta después de obtener más información. –

+0

@Matti: la respuesta de Jon skeet fue aceptada, pero el OP eliminó su aceptación más tarde. – Brian

0
Double yourValue = 0.00065; 
String percentage = (yourValue*100).ToString() + "%"; 
10

Uso del "P" format, que es de esperar más conscientes de la globalización:

String.Format("{0:P4}", pos); // e.g. 1,000.0000% 

También debería poder usar esta cadena de formato directamente en su Gridview, como otros han sugerido. Sin embargo, dado que hace los 100x calc para usted, debería funcionar :). Tal vez like this:

<asp:BoundField DataField="Db" DataFormatString="{0:P4}" /> 
+0

+1 Para el formato 'P', que es algo que puedo usar para limpiar mi propio código. – Brian

0

Suena como si estuviera haciendo una pregunta implícita Gridview, así, tratar:

<ItemTemplate> 
    <asp:Label id="Label1" runat="server" 
     Text='<%# Eval("Amount", "{0:0%}") %>' /> 
</ItemTemplate> 
0

No hay necesidad de multiplicar por 100. El uso de este

Console.WriteLine("Display percentage: {0:#.##%}", num); 

Uso # dependiendo de la precisión.

Cuestiones relacionadas