画像からスコアを出すデバイスの保守担当者からチャットが来ました.どんな画像を撮っても上限に張り付いたスコアになるとのこと.リモートでいろいろ訊きながら,なんやかんやと調べたら,デバイスのOSの言語設定が原因でした.症状と原因が遠すぎて,なかなか気づけないわ.
通常,OSの設定が変更されることはありませんし,そもそもデバイスの起動と同時にアプリが立ち上がるので,OSの画面を操作することもありません.一方,OSの言語設定によっては,小数値をテキストファイルへ出力する際,小数点がカンマになることがあるんだそうな.当アプリでは,画像から算出した複数の小数値をカンマ区切りでテキストファイル化しており,別の場所でそれを読み込んでスコア化する流れになっている様子.
ゆえに,なぜか変えられていたこの言語設定においては,カンマ区切りの小数値2個を読み込んだつもりで,1個目の小数値の整数部と小数部を別のパラメタとして読み込んでいた罠.つまり,「12.34,56.78」が出力され「12.34」「56.78」が読み込まれる想定だったのが,「12,34,56,78」が出力され「12」「34」が読み込まれたってこって.なるほどですね.