private async Task calcular_Clicked(object sender, EventArgs e) { if (!String.IsNullOrEmpty(errorEntry.Text) && !String.IsNullOrEmpty(zPicker.SelectedItem.ToString())) { double error; //El método TryParse trata de hacer la conversión a double utilizando el formato de US, el cual utiliza el punto como dividor de decimales double.TryParse(errorEntry.Text, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US"), out error); if (error <= 0.1 && error >= 0.01) { double p = (faseData.p / (faseData.p + faseData.q)); double q = (faseData.q / (faseData.p + faseData.q)); double z; //El método TryParse trata de hacer la conversión a double utilizando el formato de US, el cual utiliza el punto como dividor de decimales double.TryParse(zValues.FirstOrDefault(x => x.Value == zPicker.SelectedItem.ToString()).Key, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US"), out z); double n = Math.Pow(z, 2) * p * q / Math.Pow(error, 2); faseData.error = (float)error; faseData.z = (float)z; var calculosPage = new CalculosHechos(System.Convert.ToInt32(Math.Round(n)), faseData, System.Convert.ToInt32(faseData.p + faseData.q)); await Navigation.PushAsync(calculosPage); } else { await DisplayAlert("Error!", "El error debe ser un número entre 0,01 y 0,1!", "OK"); } } else { await DisplayAlert("Error!", "Espacios vacíos!\nPor favor inserte el error y seleccione el Za/2!", "OK"); } }
protected override async void OnAppearing() { base.OnAppearing(); pEntry.Text = (faseData.p / (faseData.p + faseData.q)).ToString(); qEntry.Text = (faseData.q / (faseData.p + faseData.q)).ToString(); await obtenerPositionAsync(); //Si es maestro de obras if (userPosition == 1) { double error = 0.05; //Numero predeterminado double p = (faseData.p / (faseData.p + faseData.q)); double q = (faseData.q / (faseData.p + faseData.q)); double z = 0.95; //Numero predeterminado double n = Math.Pow(z, 2) * p * q / Math.Pow(error, 2); faseData.error = (float)error; faseData.z = (float)z; var calculosPage = new CalculosHechos(System.Convert.ToInt32(Math.Round(n)), faseData, System.Convert.ToInt32(faseData.p + faseData.q)); await Navigation.PushAsync(calculosPage); } }