Java女子部は女性のJava開発者のコミュニティです。僕には部員の資格がないのですが、6月11日(木)の勉強会「数値型おさらい&金勘定ことはじめ」に講師として参加しました。
講義資料は次のものです。春のJJUG CCCで発表したものに、割り算についての記述を追補しました。
次のような質疑応答がありました。
- Q. JDBCでSQL Server上の数値を出し入れした時に、データの破損が起きたことがある。ナンデ?
- (1) SQL Server側の列がFLOAT型で定義されていたのかも。この場合、BigDecimal←→FLOATの変換は正確に行えない。あるいは、 (2) NUMERIC/DECIMALで定義されていたとしたら、桁数・スケールのいずれかが合っていなかったのかも。
- Q. 0.0001を精度3で丸め(round)たとき、なぜ元の値のままになるのか?
- 0.0001は(スケールされない整数値=1, スケール=4)の値で、精度=整数値の桁数は1。精度が指定した3以下なので、丸めは発生しない。
和気あいあいとして、気張っていないので、良い所でした。