vb.net取整 vbs取整

vb.net中 int函数和math.Truncate 都是取整有什么区别

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

vb.net里四舍五入用什么函数

使用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 四舍五入

关于VB.net取整的问题

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


标题名称:vb.net取整 vbs取整
本文URL:http://myzitong.com/article/hghoog.html