Possible Duplicate:
How to determine if a decimal/double is an integer?Cách tốt nhất để kiểm tra xem cặp đôi có phải là số nguyên trong C# không?
Tôi có loại biến gấp đôi và muốn kiểm tra xem đó có phải là số nguyên không.
Tại thời điểm này tôi có
public bool CheckIfInteger(double number)
{
return number.ToString().Contains(".") == false;
}
Có cách nào tốt hơn?
CẬP NHẬT: Xin lỗi tôi không nhận ra khả năng nhầm lẫn, theo số nguyên tôi có nghĩa là số nguyên toán học, đó là số tự nhiên cùng với số âm của các số tự nhiên khác 0.
Cách của bạn là nguy hiểm: nếu cài đặt vùng máy có "," làm dấu phân cách thập phân? Có vẻ như bạn có thể chọn từ các câu trả lời bên dưới. :) –
Điều đầu tiên mà bạn quan tâm với phương pháp hiện tại bạn sử dụng là nó có thể không tính đến dấu tách thập phân có thể khác nhau tùy thuộc vào văn bản chuỗi hiện tại. Nếu bạn chọn một trong các lựa chọn thay thế từ các câu trả lời dưới đây, hãy cẩn thận với bất kỳ thứ gì xử lý số đầu vào dưới dạng chuỗi trước khi cho bạn kết quả ... đặc biệt nếu nó không tính đến dấu tách thập phân khác với "." –
@Shadow: Trường hợp của bạn có thể được giải quyết bằng 'CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator'. Nhưng những gì về '((thập phân)) Int32.MaxValue + 1)'? Đó là một số thập phân không có dấu phân tách thập phân – abatishchev