You were told to cast the variables as CDBL() not the result!
The code below works for me.
Code:

$strComputer = "."
$objWMIService = GetObject("winmgmts:\\" + $strComputer + "\root\cimv2")
$colItems = $objWMIService.ExecQuery("Select * From Win32_PerfRawData_PerfOS_Processor Where Name = '0'")
For Each $objItem in $colItems
$CounterValue1 = cdbl($objItem.PercentUserTime)
$TimeValue1 = cdbl($objItem.TimeStamp_Sys100NS)
Next
For $i = 1 to 5
Sleep 1
$colItems = $objWMIService.ExecQuery("Select * From Win32_PerfRawData_PerfOS_Processor Where Name = '0'")
For Each $objItem in $colItems
$CounterValue2 = cdbl($objItem.PercentUserTime)
$TimeValue2 = cdbl($objItem.TimeStamp_Sys100NS)
If $TimeValue2 = $TimeValue1
? "Percent User Time = 0%"
Else
$PercentProcessorTime = 100 * ($CounterValue2 - $CounterValue1) / ($TimeValue2 - $TimeValue1)
? "Percent User Time = " + $PercentProcessorTime + "%"
Endif
$CounterValue1 = $CounterValue2
$TimeValue1 = $TimeValue2
Next
Next


_________________________
There are two types of vessels, submarines and targets.