如何在结果中添加Digit位置?

时间:2014-12-08 22:09:16

标签: vb.net winforms

我是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)")

1 个答案:

答案 0 :(得分:0)

设置断点并检查secs和secs2的值。您可能希望每秒使用kbits,但使用1024字节的文件大小,每秒获得kbytes。无论哪种方式,它都可以防止将来的错误以file.length的形式获取文件大小,并在计算中使用它。

注意:某些时候secs可能会为零,这会导致kbsec赋值除以零。