Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150

    [JAVA] Formattare al ... decimale

    Ciao a tutti...
    ...mi servirebbe un controllino che formatti il numero al decimale che gli passo...

    il codice...

    public String num(String valore, String num) {
    if (valore != null) {
    Integer comodo = (Integer.getInteger(num));
    int alDecimale = comodo.intValue();
    //int alDecimale = 2;
    double numero = Double.parseDouble(valore);
    double div = Math.pow(10,(double)alDecimale);
    numero *= div;
    long l = Math.round(numero);
    numero = l / div;
    String.valueOf(numero);
    valore = String.valueOf(numero);
    }
    return valore;
    }
    questa mi da NullPointerException

    ho provato un' altra via...

    public String formattacampo(String valore,String decimali)
    throws java.io.IOException {
    try{
    Integer numero = Integer.getInteger(decimali);
    int prova = numero.intValue();
    NumberFormat myFormat = NumberFormat.getInstance();
    myFormat.setMaximumFractionDigits(prova) ;
    myFormat.setMinimumFractionDigits(prova) ;
    BigDecimal liv = new BigDecimal(valore);
    valore = myFormat.format(liv.doubleValue());
    return valore;
    }catch(Exception e){
    return valore;
    }
    }
    questa invece qualsiasi numero sottoforma di stringa(mi serve cosi per comodità leggo i valori da una tabella di appoggio) mi ritorna <valore> così come era prima!!!
    ...ufffffff...

    Ho un sacco di tabelle e stavo cercando di ingegnerizzare il tutto...
    ...mi sono creato tre tabelle di appoggio dove leggo il nome della qry da lanciare...il tipo di conn...il db...etc...
    ...una tabella in cui scrivo il nome dei campi sui quali posso fare filtro con il like(la query aggiunge il like sul valore inserito nel campo)...
    ...e infine la mitica tabella dove inserisco dei campi speciali...
    ...per i quali voglio una formattazione diversa da quella standard...
    ...funziona tutto tranne quel diavolo di controllo sui decimali!!

    Spero di essere stato chiaro e...che qualcuno mi aiuti...
    ...mi sto imbastardendo su una caxxxx...

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; ora al volo non ho un esempio sotto mano, però penso ti possa tornare utile la classe DecimalFormat ( java.text.DecimalFormat ); nella documentazione javadoc della sun c'è anche un esempio sul suo uso.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    ...hai ragione la classe mi è molto utile...
    ...se fossi abbastanza esperto...
    ...il problema è che ho la pressa dietro al...
    ...nei due metodi precedenti se nella signature del metodo come secondo argomento passo direttamente un int tutto funziona correttamente!!!...forse sbaglio qualcosa nel fare il casting...
    ...mmm...non mi sembra anche perchè non mi da errori!!!...

    public String formattacampo(String valore,int decimali)
    throws java.io.IOException {
    NumberFormat myFormat = NumberFormat.getInstance();
    myFormat.setMaximumFractionDigits(decimali);
    myFormat.setMinimumFractionDigits(decimali);
    BigDecimal liv = new BigDecimal(valore);
    valore = myFormat.format(liv.doubleValue());
    return valore;
    }

    public static String num(String valore, int alDecimale) {
    if (valore != null) {
    double numero = Double.parseDouble(valore);
    double div = Math.pow(10,(double)alDecimale);
    numero *= div;
    long l = Math.round(numero);
    numero = l / div;
    String.valueOf(numero);
    valore = String.valueOf(numero);
    }
    return valore;
    }

    questi due funzionano...il problema è che per me è essenziale leggere da db una stringe e poi convertirla in int...come pensavo di aver fatto e invece...trakkkk...


  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; scusami se leggi da db i numeri e se quello che leggi sono delle stringhe per convertirli in interi puoi fare:
    codice:
    int numero = Integer.parseInt( tuaStringaLetta );
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    public String num(String valore, String num) {
    if (valore != null) {
    --> Integer comodo = new Integer(num);
    int alDecimale = comodo.intValue();
    //int alDecimale = 2;
    double numero = Double.parseDouble(valore);
    double div = Math.pow(10,(double)alDecimale);
    numero *= div;
    long l = Math.round(numero);
    numero = l / div;
    String.valueOf(numero);
    valore = String.valueOf(numero);
    }
    return valore;
    }
    non istanziavo l' oggetto...mannaggia mannaggia...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    ...molto più semplice come dici tu...
    ...grazie mille!!!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.