| Bots de conversa | Exemples | Dades pràctiques | Recursos CITCEA | |
| Google Apps Script | Projectes | Interacció | Inici |
A Google Apps Script les variables no tenen tipus i, per tant, una variable qualsevol pot guardar, entre altres coses, nombres o text. A vegades, però, ens podem trobar que una dada que nosaltres pensem que és un valor numèric resulti que és tractada com si fos text. Anem a veure algun exemple.
Agafem la següent funció:
function prova(){
var a = 4;
var b = a + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem obtindrem, com esperem, el resultat:
b = 5
Ara provem aquesta nova versió de la funció:
function prova(){
var a = "4";
var b = a + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem, obtindrem el resultat:
b = 41
Ara el contingut de la variable a s'ha tractat com a text i l'operador + aplicat no ha estat el de suma sinó el de concatenació de text. Per això el nombre 1 s'ha afegit al final en lloc de sumar-se.
A primer cop d'ull, podem pensar que només es tracta de vigilar que els nombres que posem en el programa estiguin en format numèric, és a dir sense cometes. Però quan el contingut de la variable prové d'una comanda de Telegram o s'ha llegit d'un full de càlcul també és molt probable que estigui en format de text. Ens cal, doncs, poder forçar que el contingut de la variable sigui interpretat com a numèric.
Una forma molt senzilla de fer que el contingut d'una variable que conté nombres en format text sigui interpretat com a numèric és posant-li un signe + al davant però de forma que no impliqui una suma ni una concatenació. Per exemple, mirem la següent funció:
function prova(){
var a = "4";
var b = +a + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem, obtindrem el resultat:
b = 5
A la línia marcada en color, el signe + no pot ser una suma ni una concatenació (no té res al davant) i, per tant, força a convertir el valor de la variable a a numèric. A aquest valor se li suma l'1 i s'obté el resultat esperat.
També hi ha la funció Number, que permet convertir el text al seu valor numèric. Per exemple:
function prova(){
var a = "4";
var b = Number(a) + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem, obtindrem el resultat:
b = 5
Una altra forma de convertir-ho a valor numèric són les funcions parseInt i parseFloat, que ens permeten especificar si volem que el nombre sigui, respectivament, enter o real en coma flotant.
Provem aquesta nova versió de la funció:
function prova(){
var a = "4";
var b = parseInt(a) + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem, obtindrem el resultat:
b = 5
Si posem un valor amb decimals:
function prova(){
var a = "4.7";
var b = parseInt(a) + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem, obtindrem el resultat:
b = 5
Fixem-nos que el resultat no s'arrodoneix sinó que s'eliminen els decimals.
En canvi, si fem servir parseFloat:
function prova(){
var a = "4.7";
var b = parseFloat(a) + 1;
var resposta = "b = " + b;
sendText(id, resposta);
}
Si l'executem, obtindrem el resultat:
b = 5.7

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.