Ola galera estou estudando para certificacao scjp alguem sabe me explicar se cai muito sobre um metodo da classe NumberFormat? setParseIntegerOnly?(boolean)??
para que serve mesmo??tentei usalo mas nao entendi a lógica
publicclassTexte2{publicstaticvoidmain(String[]args){floatv=2345.67889f;Stringx=null;NumberFormatnf=NumberFormat.getNumberInstance();try{System.out.println("valor"+nf.parse("1243.566"));nf.setParseIntegerOnly(false);//se colocar ou nao o resultado nao mudaSystem.out.println("valor"+nf.parse("1243.456"));}catch(ParseExceptionex){ex.printStackTrace();}// System.out.println("depis valor" + nf.format(v));}}
O que o Javadoc diz é que se você setar "setParseIntegerOnly(true)", então ele vai desprezar os dados decimais. Mas nem sabia que isso poderia cair - afinal de contas, a prova de certificação não chega a entrar nessas sutilezas (principalmente se você for fazer a prova do Java 5.0 - a matéria é extensa demais para que eles fiquem pegando no pé dessas coisas que são muito pouco usadas.
F
fabioEM
thingol:
Javadoc:
setParseIntegerOnly : only affects parsing, e.g. if true, "3456.78" -> 3456 (and leaves the parse position just after index 6) if false, "3456.78" -> 3456.78 (and leaves the parse position just after index 8) This is independent of formatting. If you want to not show a decimal point where there might be no digits after the decimal point, use setDecimalSeparatorAlwaysShown.
O que o Javadoc diz é que se você setar "setParseIntegerOnly(true)", então ele vai desprezar os dados decimais. Mas nem sabia que isso poderia cair - afinal de contas, a prova de certificação não chega a entrar nessas sutilezas (principalmente se você for fazer a prova do Java 5.0 - a matéria é extensa demais para que eles fiquem pegando no pé dessas coisas que são muito pouco usadas.
Obrigado thingol!Pois Realmente é muita sutileza e pior que no livro da katy sierra diz que cai,mas voltando ao metodo eu setei com true mas o resultado ficou o mesmo ,ate tirei o metodo e nao interfere em nada no resultado.Será que depende da versao do compilador?
T
thingol
O seu problema é que está tentando ler um número usando o Locale brasileiro, e você está passando um número em formato americano. Este programa deve funcionar direitinho: