0
votes

In a compute shader model 5, I have the result of some computation in a double precision floting point value. I have to assign the value to an integer variable and I get the warning:

warning X3205: 'round': conversion from larger type to smaller, possible loss of data

I understand the warning but in my case, at runtime the floating point value will never exceed the value acceptable for an integer. The code produce the expected result so I want to shut off that warning for the specific offending line.

I don't find how to turn off specific warning and I like to write code that do not produce any warning or if they are, they are checked to see if they are false alarm or not.

Any help appreciated.

1

1 Answers

1
votes

You did not supply your code, and I suppose it was something in the form of:

double doubleValue = 1.0;
int integer = round(doubleValue);

If you want to suppress the warning, and you are sure the data you are dealing with will not give funny results, you can cast the double to a float before passing it to round().

double doubleValue = 1.0;
int integer = round((float)doubleValue);

This form does not trigger the warning.