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