【问题标题】:Returning Tenths and Hundredth of a Second from a Stopwatch从秒表返回十分之一秒和百分之一秒
【发布时间】:2012-02-01 16:45:00
【问题描述】:

所以我越来越接近让计时器按我想要的方式工作,但有一个小问题。

我发现以下关于返回毫秒和纳秒的帖子: How do you convert Stopwatch ticks to nanoseconds, milliseconds and seconds?

但我想做的是在需要时只显示百分之一秒的十分之一。

我有以下代码:

Private Sub TotalTimer_Tick(sender As System.Object, e As System.EventArgs) Handles TotalTimer.Tick
    Dim elapsed As TimeSpan = Me.matchStopwatch.Elapsed

    Me.MatchClockLbl.Text = String.Format("{0:0}:{1:00}:{2:00}.{3:###}", _
                                   Math.Floor(elapsed.TotalHours), _
                                   elapsed.Minutes, _
                                   elapsed.Seconds, _
                                   (elapsed.Milliseconds / 100))

End Sub

现在我尝试将代码部分从 {3:000} 更改为 {3:0} 或 {3:00} 但这只是更改格式,它实际上并没有删除第 1000 位或第 1000 位,他们仍然出现。

我在 MSDN 上进一步找到了这个:

http://msdn.microsoft.com/en-us/library/ee372287.aspx#fSpecifier

但我不断得到 s.f 或 s/f 或一些不正确的东西。

编辑:在代码的修改版本中添加,感谢 Oded。现在的新问题是标签喜欢偶尔闪烁多余的数字。

【问题讨论】:

    标签: vb.net visual-studio-2010 stopwatch


    【解决方案1】:

    Milliseconds 除以 10 得到第 100 秒,除以 100 得到第 10 秒。

    这通过整数除法工作 - 基本上丢弃了最低有效数字并假设 Milliseconds 最多返回 3 位数字。

    【讨论】:

    • 一个小问题。在执行此操作时,我注意到当一整秒时,显示屏会弹出完整的 3 个零。就像我会看到 0.9 然后 0.000 然后 0.1 一样。
    • @Paul - 将格式说明符从 {3:000} 更改为 {3}{3:##}
    • 越来越近了。现在它又弹出一个数字。
    • @Paul - 看起来您的选项是 {3:0}{3:#}
    • 现在的问题是,在任何一个上,标签都显示:0:00:00.10 当我试图显示十分之一或 0:00:00.100 当我显示百分之一时。它快到了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多