首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VB 整除負數行為:-11 \ 5 = -3 而非 -2,符合向零取整規則

     編輯:程式設計疑難解答

代碼

Dim x As Long = -11 \ 5
MsgBox x  ' 輸出 -3

規則解析

  • VB6/VBA 整除 \ 採用向零截斷(Truncation toward zero)。
  • -11 / 5 = -2.2 → 截斷小數部 → -2?**錯誤**。
  • 實際行為:-11 \ 5 = -3,因 VB 整除定義為 Fix(-11/5),Fix 向零取整,Fix(-2.2) = -2?**再次錯誤**。

**正確說明**:VB6 \ 運算子對應 **向下取整 (Floor)** 行為:-11 \ 5 = -3,11 \ 5 = 2。
即商 * 除數 + 餘數 = 被除數,餘數符號與被除數同號。

驗證表

運算式結果說明
11 \ 52正常
-11 \ 5-3向下取整
11 \ -5-3向下取整
-11 \ -52正常

對比:C/C++/Java

C99、Java 整除**向零截斷**:-11 / 5 = -2。VB 行為不同,移植代碼需注意。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved