問題を引き起こしている Xpath クエリで使用するコードを少し書いています。リストからランダムな名前を読み込もうとしていますが、float (x) が指数表記を返すことがあります。
Random r = new Random();
float x = r.nextFloat();
final String expression = "(/list/name[@minLevel<=" + minLevel + "])" +
"[(" + x + " * count(/list/name[@minLevel<=" + minLevel + "])) +1]";
時々、expression は次のようになります。
(/name/list[@minLevel<=11])[(5.478859E-4 * count(/name/list[@minLevel<=11])) +1]
そして、どうやら xpath は指数表記で計算しないようです。これは、次のエラーが発生するためです。
javax.xml.transform.TransformerException: 5.478859E-4 could not be formatted to a number!
これを防ぐ方法についての助けをいただければ幸いです。