###前提・実現したいこと
前提条件①:C#にてdouble型の変数A,B,C,DをA+" "+B+" "+C+" "+Dとしてstring型に変換している。(ブレークポイントによる変数の中身を確認済み)
前提条件②:①でのstring(UTF16)をUTF8にエンコードしてbyte[]に変換している。
(バイト配列の中身は2(UTF16:string)が50(UTF8:byte[])であった。4が52であり,5が53であった。)
前提条件③:byte[]はUDPでprocessingに通信している。
目標:processing内でdoubleを定義した変数の中に格納したい。
最悪,doubleを使わず桁の精度を維持してくれる方法で配列から各変数に取り出せればよいのですが...
###発生している問題・エラーメッセージ
int(rcvMSG[0])はOK float(rcvMSG[0])もOK double(rcvMSG[0])はダメでした。
###該当のソースコード
processing
1import hypermedia.net.*; 2UDP udp; 3double a,b,c,d; 4 5//途中のvoid setup()やvoid draw()は割愛 6 7void receive (byte[] data, String ip, int port) { 8 String message = new String(data); 9 String t = message; 10 String[] rcvMSG = splitTokens(t); 11 a = int(rcvMSG[0]); 12 b = int(rcvMSG[1]); 13 c = int(rcvMSG[2]); 14 d = int(rcvMSG[3]); 15}
###疑問点
double型には6~7桁の精度があります。
これをキャストでfloatに変換したときには,
floatの精度はdoubleの精度を継承するのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/28 00:51 編集
2017/11/28 00:51
2017/11/28 00:59 編集
2017/11/28 00:59
2017/11/28 01:01
2017/11/28 01:12
2017/11/28 01:20
2017/11/28 01:29