In reply to Leonid Batkhan.

I am running SAS 9.4 on a windows 10 platform. I can't really reproduce the code with a simple data _null_ unfortunately as its with an imported dataset.

But here is the code I ran demonstrating this:

data test;
set input_data;
_000_val_term1 = _000_value*10**2; /*(this gives me a value of 62944 according to viewing the value in the dataset) */
_000_val_term2 = int(_000_val_term1); /* this gives m a value of 62943 according to viewing the value in the dataset) */
run;

I have zero idea why the heck this would be happening. If I look at the data in whatever format.

I did fix it THIS way for my application to work (essentially I had to match calculated values to "hard-coded" variables from a different dataset that only has two decimals:

_000_val_term1 = put(round(_000_value*10**2,.01), 30.3); /* "best." did not work here */
_000_val_term2 = int(_000_val_term1+0);

So I had to combine your techniques for this to work for me. Weird right?