Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Hive_Milestone3/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Double2XmlSerializer.cs @ 4695

Last change on this file since 4695 was 1958, checked in by epitzer, 16 years ago

Updated handling of floating and fixed point numbers, faster and more accurate serialization and parsing. (#646)

File size: 1.0 KB
Line 
1using System;
2using HeuristicLab.Persistence.Core;
3using HeuristicLab.Persistence.Interfaces;
4using System.Reflection;
5using System.Globalization;
6
7namespace HeuristicLab.Persistence.Default.Xml.Primitive {
8
9  public class Double2XmlSerializer : PrimitiveXmlSerializerBase<double> {
10
11    public static double ParseG17(string s) {
12      double d;
13      if (double.TryParse(s,
14        NumberStyles.AllowDecimalPoint |
15        NumberStyles.AllowExponent |
16        NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out d))
17        return d;
18      throw new FormatException(
19        String.Format("Invalid G17 number format \"{0}\" could not be parsed", s));
20    }
21
22    public static string FormatG17(double d) {
23      return d.ToString("g17", CultureInfo.InvariantCulture);
24    }
25
26    public override XmlString Format(double d) {
27      return new XmlString(FormatG17(d));
28    }
29
30    public override double Parse(XmlString t) {
31      return ParseG17(t.Data);
32    }
33  }
34
35 
36 
37
38}
Note: See TracBrowser for help on using the repository browser.