When you wire numeric data to a node that expects a different numeric data type, the node coerces the data to the most precise
type. A red coercion dot appears where the coercion takes place. Because numeric coercions can affect memory usage, performance
of a VI, or cause a VI to generate inaccurate results, use one of the strategies in the following table to eliminate or reduce
the impact of a problematic coercion.

Note
Coercions that occur in a document targeted to an FPGA can consume significant logic resources. Make sure to review any coercions
that occur in a document targeted to an FPGA.
Strategy
|
Details
|
Action
|
Example
|
Match input data types.
|
Create an object that matches the data type the node expects. If you wire data from a G type to a node or subVI that does
not accept the data type of the G type, your VI may break or generate inaccurate data. Replace the node or subVI with one
that matches the data type used in the G type, or replace the G type with a constant of the matching data type.
|
Right-click the coerced control, constant, or indicator on the diagram, select
Representation from the shortcut menu, and select the matching data type.
|
In the following diagram, the red coercion dot on the top input of the Add node indicates that the node is coercing I16 (x), a signed integer, to an unsigned integer to match the data type of U16
(y). This causes Add to return a sum of 65,531 instead of -5.
If you change the data type representation of I16 (x) so that both inputs are signed integers, no coercion is necessary, and
the node performs an accurate computation, as you can see in the following diagram.
|
Use a conversion node.
|
Conversion nodes convert one data type to another. Conversion nodes have the same effect as the automatic coercions that
occur when you wire numeric data to a node that expects a different numeric data type. However, when you use a conversion
node you can control where in your VI the conversion takes place, which can improve VI performance in certain cases.
|
To add a conversion node from the diagram palette, navigate to
and select the desired conversion node.
|
You may want to use a conversion node inside a loop that generates an array so the conversion is performed before the VI
generates the array. This allows you to avoid a large data buffer. In the following diagram, To Single Precision Float converts the Random Number output to a single-precision number inside the For Loop to prevent the Add node from converting a large amount of data.
|