El mensaje de error indica que "flux"
es del tipo text
y debe convertirse en float
para realizar los cálculos necesarios (además, indica que QGIS realiza dicha conversión de forma implícita, siempre que la cadena tenga el formato correcto).
Para ser precisos, el decimal correcto es ".", y en tu caso obviamente es ",".
Por lo tanto, con la observación anterior desviándose de mi comentario sólo tiene que hacer su cálculo en una cadena con "," sustituido por "." como
replace("flux", ',', '.') * 1000000000.0 / 12.0
Esto, por supuesto, puede ser confuso, ya que el operador "*" puede tener diferentes significados en función del tipo de datos resultante, p. ej:
- tipo de datos resultante
float
: '10.3' * 3 = 30.9
en el generador de expresiones de QGIS
- tipo de datos resultante
string
: '10.3' * 3 = '30.9'
en el generador de expresiones de QGIS
- tipo de datos resultante
string
: '10.3' * 3 = '10.310.310.3'
como en Python (siempre se evalúa como string
)
Así, la forma más clara sería
to_real(replace("flux", ',', '.')) * 1000000000.0 / 12.0
porque multiplica explícitamente real
por real
.