float型からdouble型にキャストした際に値が変わってしまうのですが、一般にどうやって対処するのでしょうか。
float f4_sample_t =0.0002;
double f8_sample_t = (double)f4_sample_t;
とすると、0.0002を期待するのですが0.000199****となります。

↓のように、してみましたが0.00199**となってしまいました。
f8_sample_t=(double)((uint)(f4_sample_t*10000))/10000;