elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Cambiar de valores al imprimir textos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cambiar de valores al imprimir textos  (Leído 1,383 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Cambiar de valores al imprimir textos
« en: 20 Julio 2024, 10:52 am »

Buenas:

En esta frase como esta, si indica singular, que se quite la s, si es plural, que lo incluya.

Dice esto en singular de la palabra tubo, antes era todo en plural.
Cantidad de Litros en total por 1 tubo: 6,28 / 12,57 L.

Aquí como es más de un tubo, ya lo dice en plural.
Cantidad de Litros en total por 2 tubos: 12,57 / 25,13 L.

Lo he hecho así de sencillo con el lenguaje C# en modo consola.
Código
  1.                       // Plural o singular cantidad de tubos.
  2.                       if (cantidadTubos <= 1)
  3.                       {
  4.                           tubo = " tubo: ";
  5.                       }
  6.                       else
  7.                       {
  8.                           tubo = " tubos: ";
  9.                       }

En la parte de números, me dice el resultado con dos coma decimales, por ejemplo:
 Porcentaje: 50,00 %.

Si termina en dos ceros, prefiero que muestre:
 Porcentaje: 50 %.

Si hay algún decimal, como en este caso, 50,01 %, ahí me da igual. Solo si nombra a secas un valor del 0 % al 100 %, evitando esto, del 0,00 % al 100,00%, como dije antes, si es tipo así, 0,87%, ya me callo.

La variable que uso es tipo float.

¿Hay solución a esto?



En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.162



Ver Perfil
Re: Cambiar de valores al imprimir textos
« Respuesta #1 en: 20 Julio 2024, 20:04 pm »

Saludos,

Simplemente debes formatear tu texto, me parece que ya en otro mensaje solucionaste algo similar con formato: https://foro.elhacker.net/net_c_vbnet_asp/ceros_a_la_derecha-t520083.0.html;msg2277390#msg2277390

Acá muestro una pequeña implementación que hice para hacer la prueba:

Código:
using System;

namespace ConsoleApplication1 {
  class Program {
    static void Main(string[] args) {

      float fAguaTotal = 47.12f;
      float fAgua = 21.205f;
      float fPorcentaje = fAgua * 100 / fAguaTotal;

      string sPorcentaje = fPorcentaje.ToString("0.##");
      string sAgua = fAgua.ToString("0.##");
      string sAguaTotal = fAguaTotal.ToString("0.##");
     
      int barra = (int)fPorcentaje * 51 / 100;

      Console.SetWindowSize(68, 21);
      Console.SetBufferSize(68, 21);
      Console.CursorVisible = false;

      Console.WriteLine();
      Console.WriteLine("  ╔═══════════════════════════════════════════════════════════════╗");
      Console.WriteLine("  ║                 *** TOTAL LITROS DE AGUA ***                  ║");
      Console.WriteLine("  ╠═══════════════════════════════════════════════════════════════╣");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║      0 %                    50 %                     100 %    ║");
      Console.WriteLine("  ║      ┌────────────────────────┬────────────────────────┐      ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║ Porcentaje:                                                   ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║ Litros de agua:                                               ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║ Cantidad de Litros en total por 8 tubos: 326.73 / 376.99 L.   ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║                                                               ║");
      Console.WriteLine("  ║ Radio: 0.1 m.                                                 ║");
      Console.WriteLine("  ║ Altura: 1.5 m.                                                ║");
          Console.Write("  ╚═══════════════════════════════════════════════════════════════╝");

      //Imprimir la Barra
      Console.CursorLeft = 9;
      Console.CursorTop = 7;
      Console.ForegroundColor = ConsoleColor.Green;
      Console.Write(new String('█', barra));
      Console.ForegroundColor = ConsoleColor.Gray;

      //Imprimir el porcentaje
      Console.CursorLeft = 16;
      Console.CursorTop = 9;
      Console.ForegroundColor = ConsoleColor.Cyan;
      Console.Write(sPorcentaje + " %.");

      //Imprimir el Agua
      Console.CursorLeft = 20;
      Console.CursorTop = 11;
      Console.Write(sAgua);
      Console.ForegroundColor = ConsoleColor.Gray;
      Console.Write(" / {0} L. total de un tubo.", sAguaTotal);

      Console.ReadKey();
    }
  }
}





En las líneas 11 al 13 estoy utilizando Format para obtener una String que me muestre al menos un número (0), luego los decimales pueden ser dos PERO se mostraran solo si no son cero (.##)

---
GeSHi me cambia los caracteres, optaré por ponerlo como código normal


« Última modificación: 20 Julio 2024, 21:18 pm por EdePC » En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Cambiar de valores al imprimir textos
« Respuesta #2 en: 20 Julio 2024, 22:21 pm »

[...]
« Última modificación: 22 Julio 2024, 09:50 am por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Cambiar de valores al imprimir textos
« Respuesta #3 en: 21 Julio 2024, 23:58 pm »

Buenas:

Me funciona medio bien. Si pongo esto.
Código
  1. Console.WriteLine(resultadoPorcentaje.ToString("N2").TrimEnd('0') + " %.");

Me sale este mensaje:

Citar
Porcentaje: 50, %.

Tiene que salir 50 %, no 50, %, sobra una coma.

Quitar esa coma parece complicado.
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.162



Ver Perfil
Re: Cambiar de valores al imprimir textos
« Respuesta #4 en: 22 Julio 2024, 01:40 am »

 :xD pero te lo puse en mi mensaje anterior  :xD

Para tu último mensaje sería:

Código
  1. Console.WriteLine(resultadoPorcentaje.ToString("0.##") + " %.");
En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Cambiar de valores al imprimir textos
« Respuesta #5 en: 22 Julio 2024, 10:49 am »

Funciona, muchas gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA] Combinación de teclas y cambiar color a textos
Programación C/C++
Ch1n0Cr 1 2,449 Último mensaje 22 Noviembre 2010, 04:15 am
por Beakman
Duda con un array, imprimir sus valores a la inversa.
Java
KaRaLLo 7 15,544 Último mensaje 21 Enero 2012, 14:47 pm
por KaRaLLo
como imprimir valores que tengan zeros al principio
Programación C/C++
Erres 5 3,969 Último mensaje 8 Octubre 2012, 19:27 pm
por Eternal Idol
Como imprimir los valores de un vector de enteros?
ASM
xoker 5 10,930 Último mensaje 7 Enero 2014, 10:36 am
por xoker
funcionar métodos y clases, sumar e Imprimir valores - java
Java
mz39720 1 2,114 Último mensaje 28 Junio 2018, 19:01 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines