2024/07/03

思い出した

血統登録番号ってJV-Dataの定義的に10桁整数なんです。ちなみにint型とlong型の有効値ですが、

  • int型:32ビット 符号付き整数で、有効値の範囲は -2,147,483,648 から 2,147,483,647
  • long型:64ビット符号付き整数で、有効値の範囲は -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807
JV-Data的な表現として10桁の整数なんですよ。int型でも実は血統登録番号って最初の4桁は確か西暦なんです。つまり、西暦2146年まではint型でも問題ないのですが、西暦2147年のどこか、もしくは西暦2148年にはオーバーフローします。

これ、昨年の4月に気が付いてデータベース登録処理部分とかは全て血統登録番号はlong型に修正してたんですが、すっかり忘れてたorz 一応全て(?)修正はしたつもりですが...コンパイラが通らなければ当然気が付きますが、それ以外は実際に西暦2147年以降にならないとエラーにならないけど、これ100年以上は来ませんので^^; そもそもその頃にはJV-Linkも64ビット化されたりして、その頃にはint型が現在のlong型になってるかも?

0 件のコメント:

コメントを投稿