Android Double=NaN如何使AlertDialog显示0,00

Android Double=NaN如何使AlertDialog显示0,00,android,Android,当调用AlertDialog.Builder方法时,我有一些双im我的应用程序,一些值显示为NaN 我应该怎么做,以AlertDialog.Builder显示0,00而不是NaN 贝娄,我的代码片段^^ double valor_kwh_mes; try { valor_kwh_mes = Double.parseDouble(kWhK.getText().toString().replace(',', '.'));

当调用AlertDialog.Builder方法时,我有一些双im我的应用程序,一些值显示为NaN

我应该怎么做,以AlertDialog.Builder显示0,00而不是NaN

贝娄,我的代码片段^^

double valor_kwh_mes;
                try {
                    valor_kwh_mes = Double.parseDouble(kWhK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    valor_kwh_mes = 0; // valores padrão
                }

                double quantidade_aparelhos;
                try {
                    quantidade_aparelhos = Double.parseDouble(aparelhosK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    quantidade_aparelhos = 1; // valores padrão
                }

                double uso_hora_diaI;
                try {
                    uso_hora_diaI = Double.parseDouble(usohoradiaIK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    uso_hora_diaI = 0; // valores padrão
                }

                double uso_minuto_diaI;
                try {
                    uso_minuto_diaI = Double.parseDouble(usominutodiaIK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    uso_minuto_diaI = 0; // valores padrão
                }

                double uso_hora_diaR;
                try {
                    uso_hora_diaR = Double.parseDouble(usohoradiaRK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    uso_hora_diaR = 0; // valores padrão
                }

                double uso_minuto_diaR;
                try {
                    uso_minuto_diaR = Double.parseDouble(usominutodiaRK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    uso_minuto_diaR = 0; // valores padrão
                }
                double uso_regular;
                try {
                    uso_regular = Double.parseDouble(usoregularK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    uso_regular = 7.5; // valores padrão
                }


                double tarifa_cobrada;
                try {
                    tarifa_cobrada = Double.parseDouble(tarifaK.getText().toString().replace(',', '.'));
                } catch (NumberFormatException e) {
                    tarifa_cobrada = 0; // valores padrão
                }

                // total e o valor a ser pago quando sabe-se quanto kwh Mês o aparelho consome

                double dias_mes = 4 * uso_regular;

                double tempo_diario_inmetro = uso_hora_diaI * 60 + uso_minuto_diaI; // 2 HORAS = 120 MINUTOS
                double kwh_minuto = valor_kwh_mes / 30 / tempo_diario_inmetro; // 0,0097222222222222
                double kwh_dia_inmetro_gasto = kwh_minuto * quantidade_aparelhos * tempo_diario_inmetro; // 0,0097222222222222 * 1 * 120 = 1,166666666666664 (1,17)
                double kwh_mensal_inmetro_gasto = kwh_minuto * tempo_diario_inmetro * quantidade_aparelhos * 30; // 0,0097222222222222 * 1 * uso_regular = 34,99999999999992 (35,0)
                double reais_gasto_mensais_inmetro = valor_kwh_mes * quantidade_aparelhos * tarifa_cobrada; // 35 * 1 * 1 = 35


                double tempo_diario_real = uso_hora_diaR * 60 + uso_minuto_diaR; // 2 HORA = 120 MINUTOS
                double kwh_dia_real_gasto = kwh_minuto * quantidade_aparelhos * tempo_diario_real; // 0,0097222222222222 * 1 * 120 = 1,166666666666664 (1,17)
                double kwh_mensal_real_gasto = kwh_minuto * tempo_diario_real * quantidade_aparelhos * dias_mes; // 0,0097222222222222 * 120 * 1 * uso_regular = 34,99999999999992 (35,0)
                double kwh_real_gasto = kwh_minuto * tempo_diario_real * dias_mes; // 0,0097222222222222 * 120 * uso_regular = 34,99999999999992 (35,0)
                double reais_gasto_mensais = kwh_real_gasto * quantidade_aparelhos * tarifa_cobrada; // 35 * 1 * 1 = 35


                // convertendo o valor a se pago para 2 casas decimais
                String totalIstr = String.format("%,.2f", reais_gasto_mensais_inmetro);
                String kWhImensalstr = String.format("%,.2f", kwh_mensal_inmetro_gasto);
                String kWhIdiastr = String.format("%,.2f", kwh_dia_inmetro_gasto);

                String totalstr = String.format("%,.2f", reais_gasto_mensais);
                String kWhRmensalstr = String.format("%,.2f", kwh_mensal_real_gasto);
                String kWhRdiastr = String.format("%,.2f", kwh_dia_real_gasto);

                // preparando AlertDialog: instanciando e setando valores o objeto AlertDialog
                AlertDialog.Builder dialogo = new AlertDialog.Builder(kwh.this);
                // setando título a ser exibido
                dialogo.setTitle("Resultado");
                // setando mensagem a ser exibida
                dialogo.setMessage("Valor mensal R$: " + totalstr + "\nValor mensal Inmetro R$: " + totalIstr + "\nkWh Mês: " + kWhRmensalstr + "\nkWh Mês Inmetro: " + kWhImensalstr + "\nkWh Dia " + kWhRdiastr + "\nkWh Dia Inmetro " + kWhIdiastr);
                // setando botão a ser exibida
                dialogo.setNeutralButton("OK", null);
                // chamando o AlertDialog para exibir todas as menssagens acima
                dialogo.show();

感谢您以后的解答

您可以通过以下方式检查双精度的NaN值:

if(myDouble.isNaN()){
myDouble=0;
}

这将确保双精度值为零而不是Nan

请输入您的代码。首先,它有几十种方法。您是否在询问如何设置值的格式?简单的答案是将Nan替换为0,但这不一定会打印0,00。另外请注意,分号仅在某些国家/地区是十进制分隔符。“我该怎么做”您应该发布最相关的代码,并更清楚地解释您要做的事情。