question

Upvotes
Accepted
9 3 3 3

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-sdkema-apirrtelektron-message-api
icon clock
10 |1500

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

1 Answer

· Write an Answer
Upvotes
Accepted
25.3k 87 12 25

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 512.0 KiB each and 1.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.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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