JavaRush /Java Blog /Random-IT /Un po' più in profondità sui numeri BigDecimal
grishin
Livello 27
Харьков

Un po' più in profondità sui numeri BigDecimal

Pubblicato nel gruppo Random-IT
Finalmente, dopo una pausa di 3 mesi, torno a seguire il corso. Sono andato in pausa all'inizio di gennaio. Ho poi deciso di passare allo studio di altre discipline, come HTML/CSS/Javascript. Lungo il percorso, ho iniziato ad apprendere le tecnologie (servlet e JSP). A quel tempo avevo completato 24 livelli ed ero un po' bloccato nelle lezioni interne - non che non mi fosse chiaro nulla, solo che le conoscenze acquisite dovevano essere sistematizzate, poiché troppe erano state acquisite in un breve periodo nella modalità “galoppo attraverso l’Europa”. Quindi, ora ho deciso di leggere attentamente il primo volume di Horstman per consolidare la mia conoscenza di Java Core e allo stesso tempo completare le attività rimanenti dei livelli precedenti, per poi passare ai livelli. Ho iniziato con il problema bonus del livello 15 sul fattoriale. Dopo averlo affrontato, ho deciso di dare uno sguardo più approfondito alla classe BigDecimal. Non ho trovato articoli particolarmente popolari su Internet, quindi ho esaminato la documentazione e il primo paragrafo mi ha fatto subito pensare che per qualche motivo non tutto fosse chiaro. Ho deciso di andare fino in fondo alla verità e, affinché il mio lavoro non fosse vano, ho formattato tutto sotto forma di articolo e ora lo pubblico alla comunità per lo scambio di opinioni, e forse lo farà essere di aiuto a qualcuno. Quindi ho preso il primo paragrafo e l’ho suddiviso in frasi. Ci sono solo 5 frasi. Le frasi numero 3 e 4 sono state sottolineate e spostate alla fine del paragrafo (perché l'ho fatto - continua a leggere). E la traduzione è stata fatta di conseguenza in questo ordine modificato. Primo paragrafo originale
  1. Numeri decimali con segno immutabili e con precisione arbitraria.
  2. Un BigDecimal è costituito da un valore intero non scalato di precisione arbitraria e da una scala intera a 32 bit.
  3. Se zero o positivo, la scala è il numero di cifre a destra del punto decimale.
  4. Se negativo, il valore non scalato del numero viene moltiplicato per dieci alla potenza della negazione della scala.
  5. Il valore del numero rappresentato da BigDecimal è quindi ( unscaledValue × 10 -scale ).
Originale con ordine delle frasi riordinato
  1. Numeri decimali con segno immutabili e con precisione arbitraria.
  2. Un BigDecimal è costituito da un valore intero non scalato di precisione arbitraria e da una scala intera a 32 bit.
  3. Il valore del numero rappresentato da BigDecimal è quindi ( unscaledValue × 10 -scale ).
  4. Se zero o positivo, la scala è il numero di cifre a destra del punto decimale.
  5. Se negativo, il valore non scalato del numero viene moltiplicato per dieci alla potenza della negazione della scala.
Traduzione ampliata (ogni punto della traduzione corrisponde a un punto dell'originale)
  1. Questi sono numeri decimali frazionari immutabili di 1 con segno 2 , di lunghezza arbitraria 34 .
  2. Il numero BigDecimal è specificato da due parametri. Il primo di loro, il cosiddetto. il valore non scalato è un numero intero di lunghezza illimitata. Conoscendo solo questo parametro non si può dire nulla sul valore effettivo del numero BigDecimal. Per fare ciò, devi conoscere il secondo parametro: un numero intero a 32 bit chiamato scala.
  3. Quindi il valore del numero BigDecimal può essere calcolato utilizzando la seguente formula: unscaledValue × 10 -scale
  4. Se BigDecimal è zero o positivo, la scala è il numero di cifre dopo la virgola decimale.
  5. Se BigDecimal è negativo, il suo valore non scalato viene moltiplicato per 10 elevato a una potenza pari alla scala con un segno meno.
Note di traduzione
1. Frazionario, perché la “precisione arbitraria” include, tra le altre cose,
   che questi sono numeri esatti e che i numeri esatti devono avere un punto decimale,
   in altre parole: frazionario.
2. Cioè può essere sia positivo che negativo.
3. Lunghezza arbitraria, perché "precisione arbitraria" significa anche
   "Un numero arbitrario di cifre."
4. In effetti, i numeri BigDecimal sono numeri reali. Ma installazione
   impostazioni diverse, puoi usarle non solo nei calcoli scientifici,
   e anche in quelli finanziari.
Quindi, le frasi sottolineate sono state il principale fattore di confusione per me: in realtà le rimuoverei semplicemente dal testo, perché in realtà sono più o meno la stessa cosa e inoltre sono più o meno la stessa cosa detta nella frase numero 5. Quelli. tre frasi di seguito dicono solo che il valore non scalato viene moltiplicato per 10 elevato a una potenza pari alla scala con un segno meno. Questo crea confusione quando la leggi per la prima volta, perché quando leggi la frase numero 3, capisci che poiché c'è se, significa che ci sarà una cosa qui, e nella frase successiva qualcos'altro. Ma no, entrambe le frasi dicono la stessa cosa, solo con parole diverse. Bene, la terza (ultima del paragrafo) frase di fila sulla stessa cosa è probabilmente come un colpo di controllo. Non è chiaro il motivo per cui il testo sia stato redatto in modo così confuso, poiché la formula valoreunscaled×10 -scale dell'ultima frase fornisce la definizione di un numero elevato nel modo più chiaro, inequivocabile e completo possibile.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION