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
使用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 四舍五入
保留两位小数的一般方法是四舍五入法。
保留两位小数,看千分位。是4或比4小舍去;是5或比5大舍去以后向前一位进1。
如:3.425保留两位小数就是3.43
3.421保留两位小数就是3.42
又如: 3.4263保留两位小数就是3.43
3.4233保留两位小数就是3.42
再如:3.4保留两位小数就是3.40
round是vb6.0的吧,我刚才查了一下,在vb点虐 里变成了枚举了成员为
成员名称 说明
RoundToBillionth 数字四舍五入为 9 个小数点位。
RoundToHundred 数字四舍五入为百位数。
RoundToHundredMillionth 数字四舍五入为 8 个小数点位
RoundToHundredth 数字四舍五入为 2 个小数点位
RoundToHundredThousand 数字四舍五入为十万位数。
RoundToHundredThousandth 数字四舍五入为 5 个小数点位。
RoundToMillion 数字四舍五入为百万位数。
RoundToMillionth 数字四舍五入为 6 个小数点位
RoundToTen 数字四舍五入为十位数。
RoundToTenBillionth 数字四舍五入为 10 个小数点位
RoundToTenMillionth 数字四舍五入为 7 个小数点位
RoundToTenth 数字四舍五入为 1 个小数点位。
RoundToTenThousand 数字四舍五入为万位数。
RoundToTenThousandth 数字四舍五入为 4 个小数点位。
RoundToThousand 数字四舍五入为千位数。
RoundToThousandth 数字四舍五入为 3 个小数点位。
RoundToUnit 数字四舍五入为个位数。要求