重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
int在绝对值上四舍五入,Truncate在靠近0的方向取整,比如:
目前创新互联公司已为上千余家的企业提供了网站建设、域名、虚拟空间、网站托管运营、企业网站设计、港南网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Sub Main()
Dim d = -1.9D
'Dim I As Integer = Int(d) '-2
Dim I As Integer = Math.Truncate(d) '-1
Console.WriteLine(I)
Console.ReadLine()
End Sub
我们知道,小学刚开始学除法的时候,数学老师会写出如下式子:
13 ÷ 5 = 2……3
老师解释说,其中2叫做商,3叫做余数
基本技巧,是使用VB的两个运算符号:
1, \ 运算符,获得整除的商,忽略余数部分
例如:13 \ 5 = 2
1, Mod 运算符,获得余数,忽略商部分
例如:13 Mod 5 = 3
利用以上2个运算符,可以得到一些特殊而有趣的结果:
12345 \ 10000 = 1
12345 \ 1000 = 12
12345 \ 100 = 123
12345 \ 10 = 1234
12345 mod 10000 = 2345
12345 mod 1000 = 345
12345 mod 100 = 45
12345 mod 10 = 5
利用举例:
Private Sub Command1_Click()
Dim n As Integer
n = 12345
Dim i As Integer
For i = 1 To 4
Print n Mod 10
n = n \ 10
Next i
Print n
End Sub
最简单的就是200\6
/是除,\是整除
可以直接用函数来实现:
1、用CInt()函数的范围在-32,768 至 32,767,对于小数部分四舍五入 。
2、用Int()函数和Fix()函数都会删除参数的小数部份而返回剩下的整数,不同之处在于,如果参数为负数,则Int()函数返回小于或等于参数的第一个负整数,而Fix()函数则会返回大于或等于参数的第一个负整数。
扩展资料:
VB常用函数
1、Time
返回系统时钟的当前时间。
2、Date
返回系统时钟的当前日期。
3、Now
返回代表当前日期和时间的编码值。该函数经常用作其它系统时钟函数的参数。
4、Hour(Time)
返回指定时间的小时部分(0到23)。
5、Minute(Time)
返回指定时间的分钟部分(0到59)。
6、Second(Time)
返回指定时间的秒部分(0到59)。
7、Day(Date)
返回月份中的日期数(1到31)。
参考资料来源:百度百科- Visual Basic
在VB中运用模运算(mod)进行求余数。
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1、求 整数商: c = a/b;
2、计算模或者余数: r = a - c*b。
求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;而取模运算在计算c的值时,向负无穷方向舍入。所谓向0方向舍入,就是以小数点为界限,直接将小数部分去掉。如(Int)-1.324=-1(亦叫截断法);
而向负无穷方向舍入,就是最终结果比真实值更小。如(Int)-1.324=-2;(int此处是强制转换数据类型)注意c是指商。
扩展资料
通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用’%’符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下’%’运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的。
求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向0 方向舍入(fix()函数);注:fix()函数是MATLAB中的一种取整函数、截断函数,直接截取数字的整数部分。而求余取模运算在计算c的值时,向无穷小方向舍入(floor()函数)。
注:floor()函数为向下取整的函数。
使用Math.Round(),注意返回值可能为Double或Decimal。
如果取整,第二个参数不填或者填0
默认采用 四舍六入五成双,如果想四舍五入,请采用MidpointRounding.AwayFromZero作为第三个参数
Dim 数字 As Double = 2.45
Dim r1 As Double = Math.Round(数字, 1, MidpointRounding.ToEven) ' r1 = 2.4 四舍六入五成双
Dim r2 As Double = Math.Round(数字, 1, MidpointRounding.AwayFromZero) ' r2 = 2.5 四舍五入
double是双精度 有效数值位52位 表示成指数的形式 即指数11位 即表示成
所以180.89305用2进制表示是10110100.1110010010011110111011001011111110110001010110110101
即
180.89305在double中存在的实际数值是
1.01101001110010010011110111011001011111110110001010110110101 *2^7
取小数点后 52位有效值后 等于10进制的180.893049999999998
所及加最后变成了 1808930.99999999998
第一次当然输出近似值1808931
第二次int函数去掉了小数点后的数int就是只取整数的部位的不是四舍五入 所以少了1