Double class trong java

Double class là wrapper class của kiểu dữ liệu nguyên thủy double chứa nhiều method giúp chúng ta thao tác dễ dàng hơn với double value. Hoặc là chúng ta có thể sử dụng ArrayList, LinkedListed etc với double value thông qua Double object vì chúng chỉ thao tác với object. Mỗi object Double chứa duy nhất một giá trị double.

Constructor

Để khởi tạo object Double class, chúng ta có 2 cách chính như sau

1, Double (double d):  Khởi tạo Float object từ một double value được cung cấp.

Syntax 
public Double(double value)

Example

Double d = new Double(10.3242d);

2, Double (String s): Khởi tạo Double object từ chuỗi double value. Nếu chuỗi không hợp lệ sẽ gây ra lỗi NumberFormatException.

Syntax
public Double(String s) throws NumberFormatException

Example
Double d = new Double("10.3242d");

Giá trị double lớn nhất – nhỏ nhất

Double class còn cung cấp cho chúng ta 2 hằng số mà được sử dụng nhiều khi thao tác với kiểu dữ liệu double là giá trị lớn nhất và bé nhất.

Giá trị lớn nhất: Double.MAX_VALUE (1.7976931348623157E308).

Giá trị nhỏ nhất: Double.MIN_VALUE (4.9E-324).

Các method trong Float class

Float class thừa kế từ Number class nên ngoài các method intValue()longValue()doubleValue() etc thì Float class còn cung cấp cho chúng ta rất nhiều method. Sau đây mình sẽ liệt kê một số method mà mình thường sử dụng trong quá trình code java:

1, toString(): Trả về String số tương ứng với giá trị double.

Syntax

public String toString()

Example

Double number = new Double (10.214243d);
System.out.println(number.toString()); // 10.214243

2, valueOf(): Khởi tạo một object Double từ giá trị double cung cấp. Nếu giá trị cung cấp không hợp lệ thì sẽ gây ra lỗi NumberFormatException.

Syntax

public static Double valueOf(double d)
 
// or 
 
public static Double valueOf(String s) throws NumberFormatException
System.out.println(Double.valueOf("100.21432325d")); // 100.21432325

System.out.println(Double.valueOf(100.214214d)); // 100.214214

System.out.println(Double.valueOf("aaa")); // NumberFormatException

3, parseDouble(): Trả về double value từ một chuỗi số được cung cấp. Nếu giá trị được cung cấp không hợp lệ gây ra lỗi NumberFormatException.

Syntax

public static float parseDouble(String s) throws NumberFormatException
System.out.println(Double.parseDouble("100.2134324d")); // 100.2134324

System.out.println(Double.parseDouble("aaa")); // NumberFormatException

4, isNaN(): Trả về true nếu Double object không phải là số, ngược lại false.

Syntax

public boolean isNaN()

Example

Double d1 = new Double(-1.0/0.0);
Double d2 = new Double(1.0/0.0);
Double d3 = new Double(0.0/0.0);


System.out.println(d1 + " = " + d1.isNaN()); // -Infinity = false

System.out.println(d2 + " = " + d2.isNaN()); // Infinity = false

System.out.println(d3 + " = " + d3.isNaN()); // NaN = true

5, isInfinite(): Trả về true nếu double object chứa giá trị rất lớn(+-), ngược lại false.

Syntax

public boolean isInfinite()

Example

Double d1 = new Double(-1.0/0.0);
Double d2 = new Double(1.0/0.0);
Double d3 = new Double(0.0/0.0);


System.out.println(d1 + " = " + d1.isInfinite()); // -Infinity = true

System.out.println(d2 + " = " + d2.isInfinite()); // Infinity = true

System.out.println(d3 + " = " + d3.isInfinite()); // NaN = false

6, equals(): So sánh bằng giữa 2 object Double.

Syntax

public boolean equals(Object obj)

Example

Double a = Double.valueOf(100.232d);

Double b = Double.valueOf(100.2d);

Double c = Double.valueOf(100.232d);

System.out.println(a.equals(b)); // false

System.out.println(a.equals(c)); // true

7, compareTo(): So sánh 2 object Double. Trả về -1 nếu nhỏ hơn, 1 lớn hơn, 0 bằng.

Syntax

public int compareTo(Double anotherDouble)

Example

Double a = Double.valueOf(100.232d);

Double b = Double.valueOf(100.2d);

Double c = Double.valueOf(100.232d);

System.out.println(a.compareTo(b)); // 1

System.out.println(b.compareTo(a)); // -1

System.out.println(a.compareTo(c)); // 0

8, max(): Lấy số lớn nhất trong 2 số, nếu 2 số trùng nhau thì trả về một trong hai.

Syntax

public static double max(double a, double b)

Example

System.out.println(Double.max(100.43d, 90.43d)); // 100.43

System.out.println(Double.max(100.43d, 100.43d)); // 100.43
public static double min(double a, double b)

Example

System.out.println(Double.min(100.43d, 90.43d)); // 90.43

System.out.println(Double.min(100.43d, 100.43d)); // 100.43

10, sum(): Trả về tổng của 2 số double.

Syntax

public static double sum(float a, float b)

Example

System.out.println(Double.sum(100.43d, 90.43d)); // 190.86

Abstract method

Ngoài các method trên thì Double class cũng implement các method của Number abstract class. Các method này sẽ giúp chúng ta chuyển giá trị kiểu long sang các kiểu dữ liệu khác như double, float, long để thao tác:

  1. public byte byteValue(): Trả về byte tương ứng của Integer object.
  2. public short shortValue(): Trả về short value tương ứng của Integer object.
  3. public int intValue(): Trả về int value tương ứng của Integer object.
  4. public long longValue(): Trả về long value tương ứng của Integer object.
  5. public double doubleValue(): Trả về double value tương ứng của Integer object.
  6. public float shortValue(): Trả về float value tương ứng của Integer object.

Ví dụ

public class Main {

    public static void main(String[] args) {

        Double d = Double.valueOf(1000.43342d);
        System.out.println("Byte value: " + d.byteValue());
        System.out.println("Short value: " + d.shortValue());
        System.out.println("Int value: " + d.intValue());
        System.out.println("Long value: " + d.longValue());
        System.out.println("Double value " + d.doubleValue());
        System.out.println("Float value: " + d.floatValue());

        double a = 5.5d;
        double _d = d.doubleValue()/a;
        System.out.println(_d);

        float b = 5.5f;
        float f = d.floatValue()/b;
        System.out.println(f);
    }
}

Output

Byte value: -24
Short value: 1000
Int value: 1000
Long value: 1000
Double value 1000.43342
Float value: 1000.4334
181.89698545454544
181.89699

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x