El error que te da es que no coinciden los tipos. Es decir, que o bien la variable Precio es nulo o esta vacio, o bien la variable Unidades le pasa lo mismo; o ambas
Para solucionar eso puedes hacerlo de tres formas:
- Modificando la estructura de la base de datos y asignando a los campos implicados valores por defecto a cero.
- Modificando la sentencia SQL para que o bien te devuelva los datos o te devuelva cero en caso de que sean nulos.
- interponer una funcion que haga lo mismo.
Yo uso esta funcion para comprobar si los datos vienen vacios o nulos
Código:
' Chequea si la variable esta vacia (sea del tipo que sea)
Public Function IsBlank(byref TempVar)
dim tmpType
IsBlank = False
select case VarType(TempVar)
case 0, 1 '--- Empty & Null
IsBlank = True
case 8 '--- String
if Len(TempVar) = 0 then
IsBlank = True
end if
case 9 '--- Object
tmpType = TypeName(TempVar)
If (tmpType = "Nothing") Or (tmpType = "Empty") Then
IsBlank = True
End If
case 8192, 8204, 8209 '--- Array
if UBound(TempVar) = -1 then
IsBlank = True
end if
end select
End Function
con lo que esto:
<%=FormatNumber(Precio * Unidades, 0) %>
quedaria asi:
<%
if isBlank(Precio) then Precio = 0
if isBlank(Unidades) then Unidades = 0
FormatNumber(Precio * Unidades, 0)
%>
Para las otras opciones, hay respuestas en el foro 
Un saludo