【问题标题】:TimeSpan rounding on toString() C#在 toString() C# 上的 TimeSpan 舍入
【发布时间】: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


【解决方案1】:

您可以简单地将 TotalSeconds 的值写入文件,例如:

TimeSpan ts = new TimeSpan(1234);
File.WriteAllText(@"C:\Temp\TimeTest.txt", ts.TotalSeconds.ToString());
// File contains: 0.0001234

【讨论】:

    【解决方案2】:

    您可以将参数传递给 ToString 方法:

    ts.TotalSecondsToString("0.00"); //2dp Number
    
    ts.TotalSecondsToString("n2"); // 2dp Number
    
    ts.TotalSecondsToString("c2"); // 2dp currency
    

    前两个选项适用于您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      相关资源
      最近更新 更多