此代码生成以下字符串:
myString = 12:44:44.6111472
myString = Date.Now.TimeOfDay.ToString
我想添加16.1234567秒和myString的值,并将结果值分配给名为myNewString的新字符串。
我尝试过的每个函数都会丢失7位小数。 还有其他方法我可以使用它并不要求我拆分整个字符串值,修改所需的部分,考虑进位,然后重新组装?
如果没有,那就这样吧。
但是,我想有一些方法,而我却找不到它!
谢谢!
答案 0 :(得分:0)
Datetime
有一些可以使用的解析函数。例如:
Dim mystring As String = "12:44:44.6111472"
Dim dt As System.DateTime = System.DateTime.Parse(mystring)
dt += New TimeSpan(16.1234567 * TimeSpan.TicksPerSecond)
mystring = dt.TimeOfDay.ToString()
'now mystring = "12:45:00.7346039"
答案 1 :(得分:0)
这是另一种类似于Ben J的方法,没有使用时间跨度(这可能使事情看起来更简单):
Dim myString = Date.Now.TimeOfDay.ToString
' parse datetime string and add seconds
Dim myDate = DateTime.Parse(myString).AddSeconds(16.1234567)
' outputs 16.123000 so you still lose a few decimal points but not all 7,
' is this close enough precision for you?
Dim ts = String.Format("{0:N6}", (New TimeSpan(myDate.Ticks) - New TimeSpan(DateTime.Parse(myString).Ticks)).TotalSeconds)