question

Upvotes
Accepted
9 0 0 1

EMA C++ post message, value after decimal point is truncated

I am using the EMA C++ for posting messages into TRCC. I used addRealFromDouble to add double value to the FieldList. Posting works okay, however the value in TRCC ended up as 1 instead of the contributed 1.0038759000

_fList.addRealFromDouble(21, 1.0038759000 ); /* HST_CLOSE */
_fList.addRealFromDouble(393, 1.0038759000 ); /* PRIMACT_1 */

I tried addDouble, but that has limitation on the length of the value.

questions:

1. Why the value is truncated?

2. What is the better way to post double value?

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
Accepted
20.3k 73 10 20

Hi @ye.li

the parameters for addRealFromDouble are:

fieldId field id value
value added double to be converted to OmmReal
magnitudeType OmmReal::magnitudeType used for the conversion (default value is OmmReal::Exponent0Enum)


For non-integer values, you need to specify the MagnitudeType e.g. ExponentNeg7Enum

See documentation for enum thomsonreuters::ema::access::OmmReal::MagnitudeType for full list.

The format you are using is for Integer values i.e. default value of Exponent0Enum

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

So that means when use the addRealFromDouble(), I still need to track how many digits after the decimal point, and set up the corresponding magnitude in the last function parameter. Is it right?

Hi @ye.li

Correct - the difference between this and the addReal is that this saves you having to convert your real number to an int mantissa value.

Click below to post an Idea Post Idea