行列の操作の値を保持したい場合は、それらすべてに掛ける値を選択します。
例えば:
1.23423
2.32423
4.2324534
それらすべてに 10000000 を掛けると、次のようになります。
12342300
23242300
42324534
行列を使用して乗算、加算などを実行できます。すべての計算を実行したら、実行した操作に応じて適切な値ですべてを除算することにより、浮動小数点数に戻すことができます。
数学的には理にかなっているから
(Scalar multiplication)
M1` = M1 * 10000000
M2` = M2 * 10000000
Result = M1`.M2`
Result = (M1 x 10000000).(M2 x 10000000)
Result = (10000000 x 10000000) x (M1.M2)
したがって、乗算の場合、結果を 10000000 x 10000000 で割ります。
加算/減算の場合は、単純に 10000000 で割ります。
乗算する値を選択するには、検索する小数の知識を使用するか、浮動小数点数をスキャンして実行時に自分で値を生成します。
それが役立つことを願っています。
編集: 整数の最大容量を超えることを心配している場合は、オーバーフローが発生することに気付いたときに、python が自動的に (そして静かに) 整数を long に変換することを知っておいてください。Python コンソールで確認できます。
>>> i = 3423
>>> type(i)
<type 'int'>
>>> i *= 100000
>>> type(i)
<type 'int'>
>>> i *= 100000
>>> type(i)
<type 'long'>
それでもオーバーフローが心配な場合は、精度を少し落とすために妥協してより低い定数をいつでも選択できます (小数点以下の終わりに向かっていくつかの桁が失われるため)。
また、Eric Postpischil によって提案された方法は理にかなっているようですが、私自身は試していません。より「pythonic」なように見える、より数学的な観点からの解決策を提供しました