-1
У меня есть несколько двойных im my APP, когда вызывается метод AlertDialog.Builder, какое-то значение показывает NaN.Двойной = NaN, как сделать AlertDialog show 0,00
Что мне делать, чтобы 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();
Спасибо за любые будущие ответы
Пожалуйста, введите код. – Rohit5k2
Во-первых, Builder имеет множество методов. Вы спрашиваете, как форматировать значение? Тривиальный ответ - заменить Nan на 0, но это не обязательно будет печатать 0,00. Также обратите внимание, что точка с запятой является десятичным разделителем только в некоторых странах. –
* «Что я должен делать» * вы должны опубликовать наиболее подходящий код и немного разъяснить, что вы пытаетесь сделать. – codeMagic