【发布时间】:2015-02-13 09:11:03
【问题描述】:
我测量了一个 wav 文件的时间,并在 TimeSpan 中取回了它。 当我查看时间跨度时,totalSeconds 值就是我需要的确切时间! 例如:TotalSeconds = 6.6999999999999993 当我将它写入文件时,它将被舍入到 6.7!
我需要文本文件中的确切值!
代码如下:
TimeSpan duration = GetWavFileDuration(wav);
string[] wavStrings = wav.Split('\\');
using (TextWriter writer = new StreamWriter(wav.Replace(".wav", ".plist"), false, Encoding.UTF8))
{
writer.NewLine = "\n";
writer.Write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n" +
"<plist version=\"1.0\">\n" +
"<dict>\n" +
"\t<key>bundle_id</key>\n" +
"\t<string>" + folderStrings[folderStrings.Length - 1] + "</string>\n" +
"\t<key>channels</key>\n" +
"\t<integer>2</integer>\n" +
"\t<key>duration</key>\n" +
"\t<real>" + duration.TotalSeconds.ToString().Replace(',', '.') + "</real>\n" +
"\t<key>filetitle</key>\n" +
"\t<string>" + wavStrings[wavStrings.Length - 1] + "</string>\n" +
"\t<key>sender</key>\n" +
"\t<string>" + folderStrings[folderStrings.Length - 1] + "</string>\n" +
"</dict>\n" +
"</plist>");
}
【问题讨论】:
-
ts.TotalSeconds.ToString() 给你四舍五入的答案?
-
如何将其准确写入文件?同时显示相关代码。
-
如果您不发布您使用的代码,则无法提供帮助。你用的是什么格式字符串?您是如何将其写入文件的?
-
此外,TimeSpan 每秒最多支持 10^7 个滴答声。它不能代表您发布的准确性。你是怎么得到这个值的?充其量只有一个舍入误差,而 6.7 才是真正的值。
标签: c# rounding tostring timespan