Q:

How to set precision and scale in ALTER TABLE

I have working code with PostgreSQL 9.3:
ALTER TABLE meter_data ALTER COLUMN w3pht TYPE float USING (w3pht::float);

but don't know how to set precision and scale. 

A:

The type float does not have precision and scale.  Use numeric(precision, scale) instead if you need that. 
Per documentation:

The data types real and double precision are inexact, variable-precision numeric types. 

For your given example:
ALTER TABLE meter_data ALTER COLUMN w3pht TYPE numeric(15,2)
USING w3pht::numeric(15,2)  -- may or may not be required

The manual:

A USING clause must be provided if there is no implicit or assignment cast from old to new type. 

Example: if the old data type is text, you need the USING clause.  If it's float, you don't.