2017-01-30 15 views
-2

MQTTペイロードを作成する必要があるノード・レッド・フローがあります。JavaScriptで文字列として数値を表現するにはどうすればよいですか?

ペイロードは、フロート(たとえば73.4)として計算されたI/Oカードの温度読み取り値です。

メッセージのペイロードは数字ではなく文字列にする必要があります。 「納屋の温度は73.2です」というようなものです。これをどうすれば作れますか?

msg.payload = tempReading;    // gives a number 
msg.payload = ""+tempReading;   // returns NaN 

ボーナスに関する質問:これを数字のペイロードとして使用した場合、どのように形式を指定できますか?読み値は73.18527461364で計算されます。私はこれを73.2として送る必要があります。

私はjavascriptで文字列を書式設定する方法を見つけ出す時間の悪魔を持っています!

+0

文字列+数は、文字列を生成します。例は 'tempReading'が第2のもので' NaN'でないと意味がありません – charlietfl

+2

[JavaScript文字列と数値変換]の可能な複製(http://stackoverflow.com/questions/971039/javascript-string-and-number-conversion ) – Sandesh

+2

toFixed(1)を使用して73.185を73.2 – darron614

答えて

0

toStringは、数値を文字列に変換する簡単な方法です。

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

あなたは小数点以下の表示方法を多くのコントロールしたい場合は、toFixedを使用することができます。あなたのケースでは

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

+0

誰かが間違っていることを説明できるなら、私の答えを改善したいです。 –

+0

パーフェクト!そしてmsg.payload = reading.toFixed(1).toString()もうまくいきました。 – user3235770

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

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

、ちょうど行います

msg.payload = String(tempReading); 
関連する問題