none
¿Se puede reducir esta expresión, pero de manera que haga exactamente lo mismo? Explico. RRS feed

  • Pregunta

  • Deseo convertir un número proporcionado que representa la cantidad de bytes a Mb, con el siguiente formato: Redondeado a dos decimales y que use el separador de miles de la configuración regional.

    Lo hago con la siguiente expresión y funciona, pero me parece que se puede reducir (obsérvese que uso dos decimales para redondear y luego especifico dos decimales para visualizar, creo que se puede simplificar):

    (u otra mejor forma de hacer lo mismo con lenguaje propio de VB.NET y no heredado de VB).

    cTamaño = FormatNumber(Math.Round(nTamaño / (1024 ^ 2), 2), 2, TriState.UseDefault, , TriState.UseDefault) & " MB"

    domingo, 14 de febrero de 2021 1:45

Respuestas

  • Creo que queda más simple si especificas el formato directamente en el ToString. Eso ya redondea a los decimales que indiques en el formato, y también genera el resultado con la configuración regional a pesar de que en el especificador de formato siempre se usa un punto para especificar la posición donde va el separador de decimales.

    cTamaño = (nTamaño / (1024.0 * 1024.0)).ToString("0.00 MB")
    

    • Marcado como respuesta James2016-2 domingo, 14 de febrero de 2021 10:49
    domingo, 14 de febrero de 2021 9:49

Todas las respuestas

  • Creo que queda más simple si especificas el formato directamente en el ToString. Eso ya redondea a los decimales que indiques en el formato, y también genera el resultado con la configuración regional a pesar de que en el especificador de formato siempre se usa un punto para especificar la posición donde va el separador de decimales.

    cTamaño = (nTamaño / (1024.0 * 1024.0)).ToString("0.00 MB")
    

    • Marcado como respuesta James2016-2 domingo, 14 de febrero de 2021 10:49
    domingo, 14 de febrero de 2021 9:49
  • Creo que queda más simple si especificas el formato directamente en el ToString. Eso ya redondea a los decimales que indiques en el formato, y también genera el resultado con la configuración regional a pesar de que en el especificador de formato siempre se usa un punto para especificar la posición donde va el separador de decimales.

    cTamaño = (nTamaño / (1024.0 * 1024.0)).ToString("0.00 MB")

    Gracias.
    domingo, 14 de febrero de 2021 10:49
  • Hola James,

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada.

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 15 de febrero de 2021 15:11
    Moderador