diff --git a/OpenMetaverse.StructuredData/StructuredData.cs b/OpenMetaverse.StructuredData/StructuredData.cs
index 11179ecc..5e370ae3 100644
--- a/OpenMetaverse.StructuredData/StructuredData.cs
+++ b/OpenMetaverse.StructuredData/StructuredData.cs
@@ -457,7 +457,8 @@ namespace OpenMetaverse.StructuredData
}
public override double AsReal() { return value; }
- public override string AsString() { return value.ToString(Utils.EnUsCulture); }
+ // "r" ensures the value will correctly round-trip back through Double.TryParse
+ public override string AsString() { return value.ToString("r", Utils.EnUsCulture); }
public override byte[] AsBinary() { return Utils.DoubleToBytesBig(value); }
public override string ToString() { return AsString(); }
}
diff --git a/OpenMetaverse.Tests/NotationLLSDTests.cs b/OpenMetaverse.Tests/NotationLLSDTests.cs
index c58a64b1..a99f9b73 100644
--- a/OpenMetaverse.Tests/NotationLLSDTests.cs
+++ b/OpenMetaverse.Tests/NotationLLSDTests.cs
@@ -261,8 +261,6 @@ namespace OpenMetaverse.Tests
OSD llsdSixDS = OSDParser.DeserializeLLSDNotation(sSix);
Assert.AreEqual(OSDType.Real, llsdSixDS.Type);
Assert.AreEqual(2.0193899999999998204e-06, llsdSixDS.AsReal());
-
-
}
[Test()]
diff --git a/OpenMetaverse.Tests/XmlLLSDTests.cs b/OpenMetaverse.Tests/XmlLLSDTests.cs
index fa56d43d..4eef25dd 100644
--- a/OpenMetaverse.Tests/XmlLLSDTests.cs
+++ b/OpenMetaverse.Tests/XmlLLSDTests.cs
@@ -74,7 +74,7 @@ namespace OpenMetaverse.Tests
4
active task count
0
- pending uploadsB
+ pending uploads
0.0001096525
diff --git a/OpenMetaverse/Types/UtilsConversions.cs b/OpenMetaverse/Types/UtilsConversions.cs
index 2e324a06..280610cf 100644
--- a/OpenMetaverse/Types/UtilsConversions.cs
+++ b/OpenMetaverse/Types/UtilsConversions.cs
@@ -706,6 +706,8 @@ namespace OpenMetaverse
/// True if the parse was successful, otherwise false
public static bool TryParseDouble(string s, out double result)
{
+ // NOTE: Double.TryParse can't parse Double.[Min/Max]Value.ToString(), see:
+ // http://blogs.msdn.com/bclteam/archive/2006/05/24/598169.aspx
return Double.TryParse(s, System.Globalization.NumberStyles.Float, EnUsCulture.NumberFormat, out result);
}