VB 常量變數賦值總是溢位

發布 科技 2024-07-08
7個回答
  1. 匿名使用者2024-01-30

    如果直接分配 65536,則不會遇到此問題。

    因為 vb 預設為 256 作為整數,所以在計算 256*256 時會先算為整數,計算結果超出整數範圍 -32768 +32767,所以會造成溢位。

    如果將數字 256 定義為增長整數,則不會出現此問題。

    該過程更改為: const a as long = 256& *256&private sub command1_click()= a

    end sub

    dim a as long

    private sub command1_click()a = 256& *256&

    aend sub

    我也會給你一點知識。

    數字型別:整數:表示式方法為%,如5%。

    長整數:表示為 &,如 5&

    Single:表示為,例如,5!

    Double:表示式為 ,例如,5

  2. 匿名使用者2024-01-29

    是的,字串型別,你是乙個長數字型別。 它需要轉換。

    可以改成以下內容,希望沒記錯。

    cstr(a)

  3. 匿名使用者2024-01-28

    試試這個,我測試的那個通過了。

    private sub command1_click()dim a as long

    a = 256

    a = a * 256

    aend sub

  4. 匿名使用者2024-01-27

    當 VB 進行加、減、乘、除運算時,最終結果中儲存的位數是根據運算第一步的位數確定的。 這與最終賦值的變數型別無關,因為這發生在計算期間(即賦值之前)。

    所以 16384*4*

    由於 16384 是整數,VB 會先假設運算結果也是整數,所以分配了兩個位元組的記憶體空間來儲存運算結果,然後開始計算 16384 * 4,結果是 65536,超出了整數範圍,會立即報“溢位”,後面的就不再計算了。 16384 * 2 和 2 * 16384 也是如此,兩者都表示“溢位”,因為計算結果超出了整數範圍。

    同樣,4 也是整數,所以 vb 也是乙個預定的等待計算結果的雙位元組“席位”。 但是,當運算達到4*時,由於涉及到浮點運算,VB會自動將運算結果的型別調整為雙倍,即“seat”一下子擴容到8個位元組,無論運算怎麼進行,都不會溢位。

    如果希望 16384 * 4 * 沒有溢位錯誤,可以執行以下操作:

    16384& *4 * '強制指定 16384 的長度(4 個位元組),以便重新計算不會溢位。

    或 16384*'不要以為4是一樣的,前者是整數,後者是浮點數。 當然,vb 會自動將其更改為 4,這意味著 double

  5. 匿名使用者2024-01-26

    溢位(錯誤 6):

    當分配超出目標限制時,將發生溢位。 此錯誤的原因和解決方法如下:

    賦值、計算或資料型別的結果的轉換太大,無法在變數型別允許的範圍內表示。

    將值分配給足以表示值範圍的型別的變數。

    對屬性的賦值超出了該屬性可以接受的最大值。

    請確保分配適合屬性的範圍。

    嘗試在計算中使用乙個數字,並且該數字被強制為整數,但結果超出了整數的範圍,例如:

    dim x as long

    x = 2000 * 365 '錯誤:溢位若要解決此問題,請鍵入數字,如下所示:

    dim x as long

    x = clng(2000) *365

    有關詳細資訊,您可以選擇相關專案並按 F1 檢視幫助。

  6. 匿名使用者2024-01-25

    計算過程的中間結果超出了資料型別值範圍。

  7. 匿名使用者2024-01-24

    這個 16384 * 4 * 他先計算了 16384 * 4 = 65536,然後溢位。 而4*16384,先計算4*=2,再計算2*16384,不會溢位。

相關回答
20個回答2024-07-08

是你不幫你。 我以前很好。 你不給任何分數。

13個回答2024-07-08

注意斜槓'\'這都是小問題,只要你仔細檢查,學會消除問題,自己解決起來就很容易了。 >>>More

10個回答2024-07-08

echo off

for /f "delims=" %%a in ('dir/b/s c:\windows\temp') do copy "%%a" d:\ >>>More

4個回答2024-07-08

出現此問題時,請檢視是否正在初始化物件或變數,例如: >>>More

14個回答2024-07-08

ubound(array)

ubound 函式。 >>>More