perl version 5.18
perl JSON エンコーダーに問題があり、フロートを引用符で囲んでいます。
サンプルコードを参照してください:
use JSON;
use Data::Dumper;
my $float = 1.2;
my $t = {
float => $float
};
my $json1 = encode_json($t);
print Dumper $t;
my $json2 = encode_json($t);
print $json1 . "\n";
print $json2 . "\n";
出力:
$VAR1 = {
'float' => '1.2',
'integer' => 1
};
{"float":1.2,"integer":1}
{"float":"1.2","integer":1}
Dumper を使用した後にわかるように、JSON エンコーダーは引用符を追加します。なぜこれが起こるのでしょうか?
上記のサンプル コードにはありませんが、本番環境では、.01 を追加しないと引用符を削除できません。*= *1 でも機能しません。