ASP頁面提示CInt溢出是什么錯誤?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
:ASP頁面提示CInt溢出是什么錯誤?
錯誤原因: VBS里,超出Integer類型的取值范圍,該類型的取值范圍為-32,768 到 32,767 之間的整數。 cint范圍 -32,768 到 32,767。 (5位整數) clng范圍 -2,147,483,648 到 2,147,483,647。 CCur范圍 -922,337,203,685,477.5808 到 922,337,203,685,477.5807(15位數) 出錯的根源: 在ASP里,有時候為了仿止注入,所以在接收參數的時候直接使用Cint函數把接過來的參數轉換為Integer(數字)類型,這就存在一個潛在問題,當頁面接收的某個參數(Request("xxx"))超過取值范圍時(可簡單理解為5位數字),就會發生此錯誤。這個是只有初級程序員會范的錯誤。 解決辦法: 有兩個方案: 一,快速解決方案,打開出錯的頁面,把所有的Cint函數換為CCur函數(用個字符替換軟件,把Cint換為CCur)。轉換后,取值范圍將從-32,768 到 32,767 (5位整數)提升到-922,337,203,685,477.5808 到922,337,203,685,477.5807(15位數),但此法也有潛在問題,如果接收數值超過15位,那也會溢出,不過如果只是處理ID字段(如果數據庫里有,而且出錯的是這個),那么可以放心,數據要達到15位數還是需要很長時間的。 二,完美解決方案,不要再使用Cint、CCur、Clng一類的轉換函數,而應該使用IsNumeric 函數來進行判斷,此法需要有一定的編程能力時行函數修改。 該文章在 2024/12/28 11:40:42 編輯過 |
關鍵字查詢
相關文章
正在查詢... |