Foros del Web » Programación para mayores de 30 ;) » .NET »

C# - Problema con un textbox

Estas en el tema de C# - Problema con un textbox en el foro de .NET en Foros del Web. Hola, Estoy haciendo una calculadora, y como saben los Textbox solo reciben numeros, y decimales. El problema que tengo es: Si pongo ".5", que lo ...
  #1 (permalink)  
Antiguo 31/08/2009, 18:07
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
C# - Problema con un textbox

Hola,

Estoy haciendo una calculadora, y como saben los Textbox solo reciben numeros, y decimales.

El problema que tengo es:

Si pongo ".5", que lo reemplace por "0.5".

Lo he probado de muchas formas, transformando el numero a double, pero me pasa ".5" a "5.0"

Saludos. ^^
  #2 (permalink)  
Antiguo 31/08/2009, 21:01
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: C# - Problema con un textbox

pero has probado usando

String.Format("{0:n1}",cdbl(textbox1.text.trim()))
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 01/09/2009, 18:04
 
Fecha de Ingreso: agosto-2009
Ubicación: Poza rica, Veracruz
Mensajes: 15
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: C# - Problema con un textbox

aca te dejo un codigo espero te sirva


public partial class Form1 : Form
{
private enum Entrada
{
NINGUNA,
DIGITO,
OPERADOR,
CE
}

private Entrada ultimaEntrada;
private bool comaDecimal;
private char operador;
private byte numOperandos;
private double operando1;
private double operando2;

public Form1()
{
InitializeComponent();
ultimaEntrada = Entrada.NINGUNA;
comaDecimal = false;
operador = '\0';
numOperandos = 0;
operando1 = 0;
operando2 = 0;
}

private void btDigito_Click(object sender, EventArgs e)
{
Button objButton = (Button)sender;

if (ultimaEntrada != Entrada.DIGITO)
{
if (objButton.Text == "0") return;
etPantalla.Text = "";
ultimaEntrada = Entrada.DIGITO;
comaDecimal = false;
}
etPantalla.Text += objButton.Text;
}

private void btComaDec_Click(object sender, EventArgs e)
{
if (ultimaEntrada != Entrada.DIGITO)
{
etPantalla.Text = "0,";
ultimaEntrada = Entrada.DIGITO;
}
else if (comaDecimal == false)
etPantalla.Text = etPantalla.Text + ",";

comaDecimal = true;
}

private void btOperacion_Click(object sender, EventArgs e)
{
// Obtener el id del botón que generó el evento
Button objButton = (Button)sender;
// Obtener el texto del botón pulsado
string textoBoton = objButton.Text;

if ((numOperandos == 0) && (textoBoton[0] == '-'))
ultimaEntrada = Entrada.DIGITO;

if (ultimaEntrada == Entrada.DIGITO)
numOperandos += 1;

if (numOperandos == 1)
operando1 = double.Parse(etPantalla.Text);
else if (numOperandos == 2)
{
operando2 = double.Parse(etPantalla.Text);
switch (operador)
{
case '+':
operando1 += operando2;
break;
case '-':
operando1 -= operando2;
break;
case 'x':
operando1 *= operando2;
break;
case '/':
operando1 /= operando2;
break;
case '=':
operando1 = operando2;
break;
}
// Visualizar el resultado
etPantalla.Text = operando1.ToString();
numOperandos = 1;
}
operador = textoBoton[0]; // carácter de la posición 0
ultimaEntrada = Entrada.OPERADOR;
}

private void btTantoPorCiento_Click(object sender, EventArgs e)
{
double resultado;
if (ultimaEntrada == Entrada.DIGITO)
{
resultado = operando1 * double.Parse(etPantalla.Text) / 100;
// Visualizar el resultado
etPantalla.Text = resultado.ToString();
// Simular que se ha hecho clic en "="
btIgual.PerformClick();
// Enfocar la tecla %
btTantoPorCiento.Focus();
}
}

private void btIniciar_Click(object sender, EventArgs e)
{
etPantalla.Text = "0,";
ultimaEntrada = Entrada.NINGUNA;
comaDecimal = false;
operador = '\0';
numOperandos = 0;
operando1 = 0;
operando2 = 0;
}

private void btBorrarEntrada_Click(object sender, EventArgs e)
{
etPantalla.Text = "0,";
ultimaEntrada = Entrada.CE;
comaDecimal = false;
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.