Pythonは言語仕様として単精度浮動小数点をサポートしていないようですが、スクリプトの連携先となるハードウェアの設定値を単精度不動小数点で入出力しなければならなかったので、 NumPy を通してコンバートすることにしました。
とりあえず自分が忘れないようにメモ。
おまじない
NumPy を使うので
import numpy
float32 の値を入力する
文字列 s に入っている各4バイトのfloat32値(合計12バイト)を変数に代入する
nums = numpy.fromstring(s, dtype=float32, count=3) self.param1 = nums[0] self.param2 = nums[1] self.param3 = nums[2]
float32 の値を出力する
変数に入っている値を float32 値(各4バイト) 3から、合計12バイトのバイト列を出力する
params = numpy.array([self.param1, self.param2, self.param3], dtype=float32) return params.tostring()