barba59 ha scritto:
Volendo, esiste anche questa:
int primaCifra = (int)(d / Math.pow(10, (int)(Math.log10(d))));
d è il numero di cui vuoi la prima cifra che può essere intero o double (e cosa che sembrerà strana, funziona anche con lo zero).
Ingegnoso questo sistema, ci ho messo un po per capirlo e ho provato a fare i calcoli con la calcolatrice di windows( disastro assoluto ) che la mia calc manuale non e' piu tornato a casa dopo che l'ho prestato.
E' giusto come interpretazione:
( int ) log10(d) mi darebbe il valore delle cifre significative,
dividendi il numero d per 10 elevato al numero trovato prima ottengo un numero che ha la parte intera come cifra piu significativa, e per avere quel numero faccio di nuovo un cast a int.
Si puo usare questo sitema con qualunque tipo di base??
e se volessi magari piu di una cifra significativa basterebbe alzare il valore intero di log10(b)?
esempio se volessi 2 cifre dovrei fare ( ( int ) log10(d) + 1 );