Tôi đã có trải nghiệm kỳ lạ này với vấn đề số 10 trên Project Euler (trang web tuyệt vời bằng cách này). Nhiệm vụ là tính toán tổng của tất cả các số nguyên tố dưới hai triệu.Không có ngoại lệ tràn cho int trong C#?
Tôi đã sử dụng hàm int cho tổng, và thuật toán của tôi đã tạo ra câu trả lời, nhưng khi tôi dán nó để xác minh câu trả lời, nó đã sai.
Hóa ra là kết quả quá lớn để vừa với một int, nhưng điều này không gây ra lỗi tràn hay gì đó? Thay vào đó, nó chỉ trả về một giá trị xa so với câu trả lời thực sự.
Khi tôi thay đổi loại thành dài, tất cả mọi thứ đều là tài xế hunky.
Bạn có thực sự muốn mọi hoạt động số nguyên để kiểm tra tràn? –
Vâng, nó shure đã có thể tiết kiệm cho tôi một số thời gian trong trường hợp cụ thể này;) – erikric
Trong trường hợp này, có. Đại đa số các hoạt động không thể tràn qua mặc dù. Nó sẽ là thú vị nếu trình biên dịch có thể chứng minh điều này và vô hiệu hóa kiểm tra như là một kết quả, nhưng tôi rất nhiều nghi ngờ nó. – Thorarin