01/10/2018, 09:10

Hỏi về chia số nguyên trong c#

Đây là code:

int a = 3, b = 4;
            double c = a / b;
            Console.WriteLine( c );

–> kết quả =0.

	int a = 3, b = 4;
	double c = ( double ) a / (double) b ;
	 Console.WriteLine( c);

–>Kết quả =0.75.

Tại sao lại phải ép kiểu về double nhỉ,có cách nào chia ra 0.75 mà không cần ép kiểu k ạ

Hidan viết 11:23 ngày 01/10/2018

Vì ko ép kiểu thì nó ra 0, người ta quy ước 2 số int chia nhau chỉ lấy phần nguyên thế rồi thì mình cứ học thôi

Chẵn viết 11:17 ngày 01/10/2018

Không phải 2 số int chia cho nhau chỉ lấy phần nguyên bạn nhé, việc lấy phần nguyên hay lấy phần dư phụ thuộc vào toán tử / và % nhé.

Hidan viết 11:15 ngày 01/10/2018

Uk rồi ý mh nói ở đây là toán tử / cũng như chủ thớt đang hỏi.

Chẵn viết 11:24 ngày 01/10/2018

Phải ép kiểu bạn nhé, vì thuộc tính của từng kiểu dữ liệu như int và double là khác nhau rồi.

Jack viết 11:18 ngày 01/10/2018
  1. ra kết quả 0 vì bạn lấy 1 số int chia cho 1 số int => kết quả sẽ ra 1 số int là 0, sau đó bạn lại tự ép kiểu về double bằng cách khai báo như trên
  2. bạn có thể dùng dạng 3.0 / 4 thì sẽ ra kết quả như mong muốn,thực chất nó vẫn là lấy 1 số thập phân chia cho 1 số nguyên,kết quả sẽ ra 1 số thập phân.Cái này là lập trình chung chứ không riêng c#
Nguyễn Văn Vương viết 11:14 ngày 01/10/2018

Cảm ơn tất cả mọi người nhiều lắm,thật sự học cũng nhiều rồi nhưng có lẽ đây là lần đầu lấy số nguyên chia số nguyên ( Thật là hổ thẹn )

Bài liên quan
0