为具有精度的具体值类准备的 Mix-in. 这里所说的精度是指实数的近似性. 因此,最好不要用在诸如抽象值类,复数以及矩阵这些不能归入实数的类中.
Precision.included(module_or_class)ruby 1.7 feature
若Precision被include, 则调用本方法. 详情请参考Module#included.
该方法主要是为了在那些包含Precision的类和模块中自动定义induced_from方法而准备的.
Precision.induced_from(number)将number变为自己的类后返回结果. 在使用默认定义的情况下, 会引发TypeError异常, 因此必须在进行Mix-in的类中对该方法进行重新定义. 若在重新定义的过程中使用了Precision#prec的话, 可能会造成无限循环.
prec(klass)将self的精度变为klass并返回结果. 在使用默认定义的情况下, 会调用klass.induced_from(self), 并返回其结果.
生成新精度类时, 不要修改内部类的Precision.induced_from, 而应该对这个prec进行重新定义 .
prec_i将self变为Integer. 相当于prec(Integer).
prec_f将self变为Float. 相当于prec(Float).