我是一名非计算科班出身的小白,爱好编程。从最初的VB、VBA到VB.NET,再到C#数据库等,由于没有扎实的理论基础,踩了很多坑。以下记录下关于除法运算的问题。
一、VB的除法运算
在除法运算方面,VB,VBA,VB.NET都是一样的,具体可看看以下三个案例:
'VBAHOME示例1
Dim a As Integer
Dim b As Integer
Dim c As Double
a = 51
b = 25
c = a / b
MsgBox(c.ToString())
结果:2.04
'VBAHOME示例2
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 51
b = 25
c = a / b
MsgBox(c.ToString())
结果:2
二、c#的除法运算
为什么要测试这个除法的不同结果呢,主要是在double数据是math.celling函数取值时得不到对应的结果,后面发现是由于除法的数据类型定义有问题,于是进行了一下计算。
//VBAHOME示例3
int a = 51;
int b = 25;
int c = a / b;
MessageBox.Show(c.ToString());
结果:2
//VBAHOME示例4
int a = 51;
int b = 25;
double c = a / b;
MessageBox.Show(c.ToString());
结果:2
//VBAHOME示例5
int a = 51;
int b = 25;
double c =(double) a / b;
MessageBox.Show(c.ToString());
结果:2.04
//VBAHOME示例6
double a = 51;
double b = 25;
double c = a / b;
MessageBox.Show(c.ToString());
结果:2.04
//VBAHOME示例7
int a = 51;
double b = 25;
double c = a / b;
MessageBox.Show(c.ToString());
结果:2.04
三、c#的商取整运算
通过以上除法的研究,再这里记录下取整函数的用法:
//VBAHOME示例8
double a = 51;
double b = 25;
int d= a / b == 0 ? a / b : a / b + 1;
//a和b商向上取整等同于 double d= Math.Ceiling(a/b);
结果:3
//VBAHOME示例9
double a = 51;
double b = 25;
int d= a / b == 0 ? a / b : a / b ;
//a和b商向下取整 double d= Math.Floor(a/b);
结果:2