十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
double是双精度 有效数值位52位 表示成指数的形式 即指数11位 即表示成
创新新互联,凭借10多年的成都网站设计、做网站经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上千多家案例。做网站建设,选成都创新互联。
所以180.89305用2进制表示是10110100.1110010010011110111011001011111110110001010110110101
即
180.89305在double中存在的实际数值是
1.01101001110010010011110111011001011111110110001010110110101 *2^7
取小数点后 52位有效值后 等于10进制的180.893049999999998
所及加最后变成了 1808930.99999999998
第一次当然输出近似值1808931
第二次int函数去掉了小数点后的数int就是只取整数的部位的不是四舍五入 所以少了1
Dim BH, BL As ArrayList
Dim Cal As Integer
BH = New ArrayList
BL = New ArrayList
Dim h, l As Double
For i As Integer = 0 To LSB2.Items.Count - 1
BH.Add(LSB2.Items(i).ToString)
Next
For i As Integer = 0 To LSB1.Items.Count - 1
BL.Add(LSB1.Items(i).ToString)
Next
For I As Integer = 0 To BH.Count - 1
h = CDbl(BH.Item(I))
l = CDbl(BL.Item(I))
If (h = l) Then
Cal = 0
Else
Cal = (highAvg - lowAvg) / (h - l)
End If
LstA.Items.Add(Cal)
Next
Option Explicit On
Option Strict On
Imports System
Module Program
Sub Main()
Dim s As String
Dim strs As String()
Dim fz,fm,n,m,t As Long
Console.Write("请输入一个小数:")
s=Console.ReadLine().Trim()
strs=s.Split("."C)
fz=CLng(strs(0))
fm=CLng(Math.Pow(10,strs(1).Length))
fz=fz*fm+CLng(strs(1))
n=fz
m=fm
While n Mod m0
t=n Mod m
n=m
m=t
End While
fz\=m
fm\=m
Console.WriteLine("{0}={1}/{2}",s,fz,fm)
Console.Write("Press any key to continue . . . ")
Console.ReadKey(True)
End Sub
End Module