Vì bạn không sử dụng bất kỳ hậu tố nào, các chữ 13
và 4
được hiểu là số nguyên:
Hướng dẫn sử dụng :
Nếu theo nghĩa đen không có hậu tố, nó có là người đầu tiên của các loại, trong đó giá trị của nó có thể được biểu: int
, uint
, long
, ulong
.
Do đó, vì bạn khai báo 13
là số nguyên, phép chia số nguyên sẽ được thực hiện:
Hướng dẫn sử dụng :
Đối với một hoạt động có dạng x / y, độ phân giải quá tải toán tử nhị phân được áp dụng để chọn một triển khai toán tử cụ thể. Các toán hạng được chuyển đổi thành các loại tham số của toán tử được chọn và loại kết quả là kiểu trả về của toán tử.
Các toán tử phân chia được xác định trước được liệt kê dưới đây. Các toán tử đều tính thương số của x và y.
Bộ phận nguyên:
int operator /(int x, int y);
uint operator /(uint x, uint y);
long operator /(long x, long y);
ulong operator /(ulong x, ulong y);
Và vì vậy, làm tròn xuống xảy ra:
Phép chia làm tròn kết quả về 0 và giá trị tuyệt đối của kết quả là số nguyên lớn nhất có thể nhỏ hơn giá trị tuyệt đối của thương số của hai toán hạng. Kết quả bằng 0 hoặc dương khi hai toán hạng có cùng dấu và 0 hoặc âm khi hai toán hạng có dấu trái ngược nhau.
Nếu bạn làm như sau:
int x = 13f / 4f;
Bạn sẽ nhận được một lỗi biên dịch, vì một phép chia dấu phẩy động ( /
toán tử của 13f
) dẫn đến một số float, không thể chuyển thành int ngầm.
Nếu bạn muốn phân chia là phân chia dấu phẩy động, bạn sẽ phải làm cho kết quả nổi:
float x = 13 / 4;
Lưu ý rằng bạn vẫn sẽ phân chia số nguyên, sẽ hoàn toàn được bỏ qua để nổi: kết quả sẽ là 3.0
. Để khai báo rõ ràng các toán hạng là float, sử dụng f
hậu tố ( 13f
, 4f
).
integer
phân chia khôngfloating point
phân chia.