我是VB的新手,所以请你好。我正在创建的实用程序中有一个小的speedtest click事件。当我得到输出到文本时,Kb / sec只显示前两位数字。它似乎总是下降0.因此,例如,如果速度为210 kb / sec,它将在输出中显示为\ t21 kb / sec。我不知道我是在做数学错误还是我无意中将输出限制为只有两位数。
Dim starttime As Integer = Environment.TickCount
'Download the source to the temp path
wclient.DownloadFile("http://speedtest.wdc01.softlayer.com/downloads/test10.zip", "C:\temp\speedtest.txt")
Dim endtime As Integer = Environment.TickCount
Dim secs As Integer = Math.Floor(endtime - starttime) / 1000
Dim secs2 As Double = Math.Round(secs, 0)
Dim kbsec As Integer = Math.Round(1024 / secs)
Dim SPEED_NAME As String = "C:\temp\logs\speedtest.txt"
Dim objWriter As New System.IO.StreamWriter(SPEED_NAME, False)
objWriter.WriteLine("Begin Speed Test")
objWriter.WriteLine("10mb download: \t{0} secs ({1} secs)", secs2, secs)
objWriter.WriteLine("Download rate: \t{0} kb/sec", kbsec)
objWriter.WriteLine("End Speed Test")
objWriter.Close()
MsgBox("Text written to file")
MsgBox("Cleaning up... (deleting downloaded file)")
答案 0 :(得分:0)
设置断点并检查secs和secs2的值。您可能希望每秒使用kbits,但使用1024字节的文件大小,每秒获得kbytes。无论哪种方式,它都可以防止将来的错误以file.length的形式获取文件大小,并在计算中使用它。
注意:某些时候secs可能会为零,这会导致kbsec赋值除以零。