data types used in an odd way?

I was looking at a sketch and they keep using different data types in a way I have never seen can someone explain what they are doing and why this is used.

long delayAmount = (long)(1000000/frequencyInHertz);
int freq = 220+(int)(reading*scale);

Why have long and int in a set of parentheses alone what is this doing?

They are examples of C type casting.

The uses of casting you have there don't look as though they do anything - might just be there to prevent compiler warnings.

It would help to know the data types of frequencyInHertz, reading, and scale.

long delayAmount = (long)(1000000/frequencyInHertz);

Was this code writen for an Arduino?

The 1000000 may/will cause an error on the Arduinos use 1000000L or 1000000UL instead.

And the (long) is totally pointless.