注册 登录
编程论坛 VB6论坛

求VB挂轮比代码

hl2388817942 发布于 2016-01-11 22:14, 1566 次点击
比如,text1.text,是个double,比如是0.8745865231,求(A/B)*(C/D),A,B,C,D均是30到100的整数,要求输出(A/B)*(C/D)最接近text1.text里的数值,然后输出一个(A/B)*(C/D)

比如最终输出52/68*86/61

谢谢大侠
2 回复
#2
风吹过b2016-01-12 21:43
(51/55)*(83/88)=.874586776859504

Dim a As Long, b As Long, c As Long, d As Long
Dim m As Double, n As Double
Dim k As Double

Dim a1 As Long, b1 As Long, c1 As Long, d1 As Long
Dim m1 As Double


k = 1
For a = 30 To 100
For b = 30 To 100
For c = 30 To 100
For d = 30 To 100
m = (a / b) * (c / d)
n = Abs(m - 0.8745865231)
If n < k Then
    k = n
    a1 = a
    b1 = b
    c1 = c
    d1 = d
    m1 = m
End If
Next d
Next c
Next b
Next a

Print "("; a1; "/"; b1; ")*("; c1; "/"; d1; ")="; m1
Debug.Print "(" & a1 & "/" & b1 & ")*(" & c1 & "/" & d1 & ")=" & m1
#3
hl23888179422016-01-17 12:51
(51/55)*(83/88)=.874586776859504

Dim a As Long, b As Long, c As Long, d As Long
Dim m As Double, n As Double
Dim k As Double

Dim a1 As Long, b1 As Long, c1 As Long, d1 As Long
Dim m1 As Double


k = 1
For a = 30 To 100
For b = 30 To 100
For c = 30 To 100
For d = 30 To 100
m = (a / b) * (c / d)
n = Abs(m - 0.8745865231)
If n < k Then
    k = n
    a1 = a
    b1 = b
    c1 = c
    d1 = d
    m1 = m
End If
Next d
Next c
Next b
Next a

Print "("; a1; "/"; b1; ")*("; c1; "/"; d1; ")="; m1
Debug.Print "(" & a1 & "/" & b1 & ")*(" & c1 & "/" & d1 & ")=" & m1


这个代码,我是在窗体有个text1.text,然后在text。text中输入实数,一般是小数点后七位,然后然后输出挂轮比,要求误差小于0.0002.这个程序不运行,大侠,看看应该怎么写,谢谢!
1