Sự khác biệt trong ASP/VBScript giữa Int()
và CInt()
là gì?ASP/VBScript - Int() vs CInt()
Trả lời
Chức năng Int trả về phần nguyên của một số quy định.
Chức năng CInt chuyển đổi một biểu thức để gõ Integer.
Và câu trả lời tốt nhất đến từ MSDN
CInt khác Khắc phục sự cố và các hàm Int, mà cắt ngắn, chứ không phải là hình tròn, phần phân số của một số. Khi phần phân số là chính xác 0,5, hàm CInt luôn luôn làm tròn nó đến số chẵn gần nhất. Ví dụ: 0,5 vòng đến 0 và 1,5 vòng đến 2.
Và sự khác biệt quan trọng nhất (IME, ít nhất) .... là CInt overflows at 32,767.
Dưới đây là một sự khác biệt:
Script:
wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)
kết quả:
4091
4090 (????)
4091
Bất kỳ suy nghĩ?
Làm tròn điểm nổi. Giá trị thực tế của "40.91" trong mã rất gần nhưng chỉ nhỏ hơn giá trị thập phân lý thuyết. Vòng CInt gần nhất, Int cắt ngắn. –
Câu trả lời thông thường cho vấn đề này là buộc phải làm tròn lại theo cách thủ công. Vấn đề này là cũ như FORTRAN.
Thay vì
a = int(40.91 * 100)
Sử dụng
b = 40.91 * 100
a = int(b + 0.5)
lừa Rất cũ, vẫn còn hữu ích trong các bảng tính Excel trong từng thời kỳ.
Rất cám ơn vì lời nhắc rằng int là số nguyên BIT 16 ký! –