Conversion of an int or a long value to float, or of a long value to double, may result in loss of precision
As long as you cast ints to doubles, you may assume the resulting value will be an exact integer representation. However, as soon as you start performing floating point arithmetic on those values, you will lose any such guarantees. So no, the operations you describe are not safe. Whether or not they lose information, they can not guarantee they won't lose information.
It would be wise to treat any operation you perform on floating point values as lossy.