てきとう

てきとう

Adaにおける浮動小数点数 floating point

type FooBar is digits Baz;

こんなん。オプションでrange Foo..Barとかがついたりする。付けた場合、値はその範囲に束縛される。
実装の中身については、当然ながら特に決まりはない。
ただし、BazはSystem.Max_Base_Digitsの値を越えてはいけない。
さらにrange以降を省略する場合はSystem.Max_Digitsを越えてはいけない。
さらに実装が指定したdigitsとrangeを満たせない場合はどうしようもないのでエラー。

このtype FooBarの場合、–10.0**(4*Baz) .. +10.0**(4*Baz)の範囲は保証されるらしい。
属性Safe_FirstとSafe_Lastで実際に大丈夫な範囲は取得可能らしい。