pip6.gif (3064 bytes)

Numeri

Java ha otto tipi primitivi (i tipi servono a dichiarare le variabili). I tipi primitivi (o tipi semplici) NON sono oggetti. Gli otto tipi semplici sono: byte, short, int, long, float, double, char, boolean. I primi sei rappresentano numeri; char rapprensenta un caratere Unicode e boolean, un valore logico: true o false.

Interi:

I tipi byte, short, int, long rappresentano numeri interi, la differenza tra tipi successivi è dovuta alla rispettiva capacità.

byte raprresenta un intero tra -128 e 127 (sono 256 interi, cioè quello che si può rappresentare con 8 bits)

short: corrisponde a interi con 16 bits; rappresenta un intero tra -32.768 e 32.767.

int : intero con 32 bits; rappresenta un intero tra -2.147.483.648 e 2.147.483.647.

long: 64 bits; rappresenta un intero tra -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807

Non c'è bisogno di ricordarsi tutti questi numeri. In generale il formato int è quello più conveniente per trattare questioni riguardanti numeri interi.

Reali:

float : rappresenta un numero reale di valore massimo più o meno 1038. Un float ha 7 decimali significative. Per dichiarare un float bisogna appendere il suffisso F o f; per esempio "1,5F" è 1,5 considerato come float.

double : rappresenta un numero reale di vlore massimo, circa, 10308 e ha 15 decimali significative.

E' preferibile usare double se si vogliono usare numeri reali non interi.


Ecco come modificare l'applet precedente per tenere conto dell'arrotondamento:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.lang.Math.*;

public class Iva2 extends Applet implements ActionListener {
Button tasto = new Button("premi!");
Font textFont = new Font("Dialog", Font.BOLD, 20);
String Str = new String("");
String Ris = new String("");
TextField yourText = new TextField(Str, 15);
int x=0;
int y=0;



public void init() {
    add(tasto);
    tasto.addActionListener(this);
    add(yourText);
   
   
}
public void actionPerformed(ActionEvent e) {
    Str = yourText.getText();
    x = Integer.parseInt(Str);
    double z = x;
    y = (int)(Math.round(z + z/5));
    Ris = Integer.toString(y);
    repaint();
}

public void paint (Graphics g) {
    g.setFont(textFont);
    g.setColor(Color.red);
    g.drawString("Il prezzo con IVA è:" + Ris, 20, 50);
    }

}

con double z = x; definiamo x come double (questo è legale perchè x è un int, non sarebbe legale fare int z = x; con x un double (non tutti i double sono int)). Applichiamo Math.round() a z + z/5, Math.round() arrotonda all'intero più vicino (considerato come double), siccome y è un int, bisogna fare un cast esplicito: (int)(Math.round(z+z/5));

fleche_retour.gif (1377 bytes)avanti02.gif (9574 bytes)