You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/05-data-types/02-number/3-repeat-until-number/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,5 +19,5 @@ La soluzione risulta essere leggermente più complessa poiché è necessario tra
19
19
20
20
In questo modo possiamo quindi accettare input finché non viene inserito un "numero valido". Sia `null` (cancel) sia una riga vuota soddisfano questa condizione, poiché la loro forma numerica vale `0`.
21
21
22
-
Dopo esserci fermati, abbiamo bisogno di di gestire i casi `null` e righa vuota diversamente (ritornando `null`), poichè convertirli alla forma numerica li "trasformerrebbe" in `0`.
22
+
Dopo esserci fermati, abbiamo bisogno di di gestire i casi `null` e righa vuota diversamente (ritornando `null`), poiché convertirli alla forma numerica li "trasformerrebbe" in `0`.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/02-number/article.md
+15-14Lines changed: 15 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ Possiamo anche usare il carattere underscore `_` come separatore:
22
22
let billion =1_000_000_000;
23
23
```
24
24
25
-
Qui il carattere `_` gioca il ruolo di "szucchero sintattico", cioè rende il numero più leggibile. Il motore JavaScript semplicemente ignorerà i caratteri `_` tra le cifre, quindi è come scrive il milione di poco sopra.
25
+
Qui il carattere `_` gioca il ruolo di "zucchero sintattico", cioè rende il numero più leggibile. Il motore JavaScript semplicemente ignorerà i caratteri `_` tra le cifre, quindi è equivalente al milione scritto sopra.
26
26
27
27
Nella vita reale però cerchiamo di evitare di scrivere lunghe file di zeri per evitare errori. E anche perché siamo pigri. Solitamente scriviamo qualcosa del tipo `"1ml"` per un milione o `"7.3ml"` 7 milioni e 300mila. Lo stesso vale per i numeri più grandi.
28
28
@@ -38,8 +38,8 @@ In altre parole, `"e"` moltiplica il numero `1` seguito dal numero di zeri dati.
38
38
39
39
40
40
```js
41
-
1e3=1*1000// e3 means *1000
42
-
1.23e6=1.23*1000000// e6 means *1000000
41
+
1e3=1*1000// e3 significa *1000
42
+
1.23e6=1.23*1000000// e6 significa *1000000
43
43
```
44
44
45
45
Ora proviamo a scrivere qualcosa di molto piccolo. Ad esempio, 1 microsecondo (un milionesimo di secondo):
@@ -91,7 +91,7 @@ Ci sono solo 3 sistemi di numerazione con questo livello di supporto. Per gli al
91
91
92
92
## toString(base)
93
93
94
-
Il metodo `num.toString(base)` ritorna una rappresentazione in stringa del numero `num` con il sistema numerazione fornito `base`.
94
+
Il metodo `num.toString(base)` ritorna una rappresentazione in stringa del numero `num` con il sistema di numerazione fornito `base`.
95
95
96
96
Ad esempio:
97
97
```js run
@@ -150,7 +150,7 @@ Qui abbiamo una tabella che riassume le principali differenze:
150
150
|`-1.6`| `-2` | `-1` | `-2` | `-1` |
151
151
152
152
153
-
Queste funzioni coprono tutti i possibili casi quando trattiamo numeri con una parte decimale. Come potremmo fare se volessi arrotondare il numero ad `n` cifre dopo la virgola?
153
+
Queste funzioni coprono tutti i possibili casi quando trattiamo numeri con una parte decimale. Come potremmo fare se volessimo arrotondare il numero ad `n` cifre dopo la virgola?
154
154
155
155
Ad esempio, abbiamo `1.2345` e vogliamo arrotondarlo a due cifre dopo la virgola, tenendo solo `1.23`.
156
156
@@ -214,7 +214,7 @@ Strano! Quale può essere il risultato se non `0.3`?
214
214
alert( 0.1 + 0.2 ); // 0.30000000000000004
215
215
```
216
216
217
-
Ouch! Ci possono essere molte conseguenze dovute ad un errato confronto. Immaginate di progettare un sito di e-shop in cui i visitatori aggiungono al carrello articoli da `$0.10` e `$0.20`. Poi come prezzo totale viene mostrato `$0.30000000000000004`. Questo risultato lascerebbe sorpreso chiunque.
217
+
Ouch! Un confronto errato di questo tipo può generare diverse conseguenze. Immaginate di progettare un sito di e-shop in cui i visitatori aggiungono al carrello articoli da `$0.10` e `$0.20`. Poi come prezzo totale viene mostrato `$0.30000000000000004`. Questo risultato lascerebbe sorpreso chiunque.
218
218
219
219
Ma perché accade questo?
220
220
@@ -252,7 +252,7 @@ let sum = 0.1 + 0.2;
252
252
alert( sum.toFixed(2) ); // 0.30
253
253
```
254
254
255
-
Da notare che `toFixed` ritorna sempre una stringa. Viene cosi garantito che ci siano almeno due cifre dopo la virgola decimale. Questo ci torna molto utile se abbiamo un e-shopping e vogliamo mostrare `$0.30`. Per tutti gli altri casi possiamo semplicemente chiamare la conversione con l'operatore di somma unaria:
255
+
Da notare che `toFixed` ritorna sempre una stringa. Viene cosi garantito che ci siano almeno due cifre dopo la virgola decimale. Questo ci torna molto utile se abbiamo un e-shopping e vogliamo mostrare `$0.30`. Per tutti gli altri casi possiamo semplicemente chiamare la conversione con l'operatore di somma unaria:
Questo funziona perché quando facciamo `0.1 * 10 = 1` e `0.2 * 10 = 2` entrambi diventano interi, non vi è quindi perdita di precisione.
269
+
Questo funziona perché quando facciamo `0.1 * 10 = 1` e `0.2 * 10 = 2` entrambi diventano interi, non vi è quindi perdita di precisione.
270
270
271
-
3. Se abbiamo a che fare con dei prezzi, la miglior soluzione rimane quella di memorizzare tutti i prezzi in centesimi, evitando quindi di utilizzare i numeri con virgola. Ma cosa succede se proviamo ad applicare uno sconto del 30%? Nella pratica, evadere completamente questo problema è difficile, in alcuni casi possono tornare utili entrambe le soluzioni viste sopra.
271
+
3. Se abbiamo a che fare con dei prezzi, la miglior soluzione rimane quella di memorizzare tutti i prezzi in centesimi, evitando quindi di utilizzare i numeri con virgola. Ma cosa succede se proviamo ad applicare uno sconto del 30%? Nella pratica, evitare completamente questo problema è difficile, in alcuni casi possono tornare utili entrambe le soluzioni viste sopra.
272
272
273
273
Quindi, l'approccio moltiplicazione/divisione riduce gli errori, ma non li elimina completamente.
274
274
275
-
Talvolta possiamo evitare le frazioni. Ad esempio se abbiamo a che fare con un negozio, allora possiamo memorizzare i prezzi in centesimi piuttosto che indollari.
275
+
Talvolta possiamo evitare le frazioni. Ad esempio se abbiamo a che fare con un negozio, allora possiamo memorizzare i prezzi in centesimi piuttosto che ineuro.
276
276
277
277
````smart header="La cosa divertente"
278
278
Provate ad eseguire questo:
@@ -424,7 +424,7 @@ Un paio di esempi:
424
424
425
425
Ci sono molte altre funzioni e costanti nell'oggetto `Math`, incluse quelle trigonometriche, che potete trovare nella [documentazione dell'oggetto Math](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Math).
426
426
427
-
``````
427
+
428
428
## Riepilogo
429
429
430
430
Per scrivere numeri molto grandi:
@@ -434,12 +434,14 @@ Per scrivere numeri molto grandi:
434
434
435
435
Per diversi sistemi numerici:
436
436
437
-
Per convertire a numeri valori del tipo `12pt` e `100px`:
-`parseInt(str, base)` analizza un numero intero con un qualsiasi sistema numerico con base:`2 ≤ base ≤ 36`.
441
439
-`num.toString(base)` converte un numero ad una stringa utilizzando il sistema numerico fornito in`base`.
442
440
441
+
Per convertire a numeri valori del tipo `12pt` e `100px`:
442
+
443
+
- Utilizzate parseInt/parseFloat per un conversione "soft", i quali provano a leggere un numero da una stringa e ritornano ciò che sono riusciuti ad estrarre prima di interrompersi.
444
+
443
445
Per i numeri con la virgola:
444
446
445
447
- Arrotondate usando `Math.floor`, `Math.ceil`, `Math.trunc`, `Math.round` o `num.toFixed(precision)`.
@@ -449,4 +451,3 @@ Altre funzioni matematiche:
449
451
450
452
- Guardate l'oggetto [Math](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Math) in caso di necessità. La libreria non è molto ampia, ma è in grado di coprire le necessità di base.
0 commit comments