diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e6488f3c..c9afc869d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## 4.9.0 [unreleased] +### Bug Fixes +1. [#408](https://github.com/influxdata/influxdb-client-csharp/issues/408): Conversion of double to string can result in a loss of precision + ### Dependencies Update dependencies: diff --git a/Client/Writes/PointData.cs b/Client/Writes/PointData.cs index 86b971c57..27042cdfe 100644 --- a/Client/Writes/PointData.cs +++ b/Client/Writes/PointData.cs @@ -470,10 +470,14 @@ private bool AppendFields(StringBuilder sb) EscapeKey(sb, key); sb.Append('='); - if (value is double || value is float) + if (value is float) { sb.Append(((IConvertible)value).ToString(CultureInfo.InvariantCulture)); } + else if (value is double) + { + sb.Append(((IConvertible)value).ToString("G17")); + } else if (value is uint || value is ulong || value is ushort) { sb.Append(((IConvertible)value).ToString(CultureInfo.InvariantCulture)); @@ -713,4 +717,4 @@ public override int GetHashCode() return !(left == right); } } -} \ No newline at end of file +}