2017-01-30 4 views
-2

Ich habe einen Knoten-roten Fluss, der eine MQTT-Nutzlast erstellen muss.Wie stellen Sie eine Zahl als Zeichenfolge in Javascript dar?

Die Nutzlast ist eine Temperaturmessung von einer E/A-Karte, berechnet als ein Schwimmer (zum Beispiel 73,4).

Ich brauche die Nachrichtennutzlast, um eine Zeichenkette, nicht eine Zahl zu sein; etwas wie "Stall Temp ist 73,2". Wie kann ich das schaffen?

Eine Bonusfrage: wenn ich das als eine numerische Nutzlast verwendet habe, wie kann ich sein Format angeben? Der Wert wird bei 73,18527461364 berechnet; Ich muss dies als 73.2 senden.

Ich habe einen Teufel Zeit herauszufinden, wie man Zeichenketten in Javascript formatieren!

+0

String + Anzahl erzeugt String. Beispiel ist nicht sinnvoll, es sei denn, 'tempReading' ist' NaN' in zweitem – charlietfl

+2

Mögliches Duplikat von [JavaScript String- und Zahlenumwandlung] (http://stackoverflow.com/questions/971039/javascript-string-and-number-conversion)) – Sandesh

+2

verwenden Sie einfach toFixed (1), um 73.185 .. als 73.2 – darron614

Antwort

0

toString ist eine einfache todsichere Möglichkeit, Zahlen in Zeichenfolgen zu konvertieren.

var x = 10.56; 
 
x = x.toString(); 
 
console.log(x, typeof x);

Wenn Sie steuern möchten, wie viele Dezimalstellen angezeigt werden, können Sie toFixed verwenden.

var x = 12.3456789; 
 
x = x.toFixed(3); 
 
console.log(x, typeof x);

+0

Ich würde gerne meine Antwort verbessern, wenn jemand erklären könnte, was damit nicht stimmt. –

+0

Perfekt! Und msg.payload = reading.toFixed (1) .toString() hat ebenfalls funktioniert. – user3235770

0
var num = 74.3; //=> typeof num "number" 

var converted = String(num); //=> typeof converted "string" "74.3" 

In Ihrem Fall tun gerade:

msg.payload = String(tempReading); 
Verwandte Themen