热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vb.net取整,vb中取整

vb.net里四舍五入用什么函数使用Math.Round(),注意返回值可能为Double或Decimal。如果取整,第二个参数不填或者填0默认采用四舍六入五成双,如果想四舍五入,

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中 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


推荐阅读
author-avatar
阿笨猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有