Blog Post

Azure Integration Services Blog
1 MIN READ

Workflow expression function xml() behavior when converting numbers with decimal

Manohar_Patel_Seshapur's avatar
Jul 04, 2022

The xml() expression function returns the XML version for a string that contains a JSON object.

 

Issue:

You might notice a floating-point precision issue when this function used to convert a string that contains a JSON object with decimal numbers as shown in the below sample.

 

This is a known issue due to the below third party NewtonSoft package used by the function that exhibits this behavior. 

https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JToken_ToObject__1_1.htm

 

NewtonSoft loads the floating point numbers into .NET double type, which injects this precision loss when it serializes them back to string. Per default at https://www.newtonsoft.com/json/help/html/P_Newtonsoft_Json_JsonSerializerSettings_FloatParseHandling.htm

 

Workaround:

At the moment, you could workaround this behavior by providing the value as a string as shown in the below sample.

 

 

Updated Jul 04, 2022
Version 1.0
No CommentsBe the first to comment