类 DfpField
java.lang.Object
org.hipparchus.dfp.DfpField
十进制浮点数实例的字段。
-
嵌套类概要
嵌套类 -
字段概要
字段修饰符和类型字段说明static final int除零的IEEE 854-1987标志。static final int不精确结果的IEEE 854-1987标志。static final int无效操作的IEEE 854-1987标志。static final int溢出的IEEE 854-1987标志。static final int下溢的IEEE 854-1987标志。 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明void清除IEEE 854状态标志。static DfpcomputeExp(Dfp a, Dfp one) 计算exp(a)。static Dfp计算ln(a)。boolean获取度到弧度的转换因子。getE()获取常数e。Dfp[]将常数e拆分为两部分。getExtendedField(int digitsFactor, boolean computeConstants) 获取用于精度转换的扩展字段。int获取IEEE 854状态标志。getLn10()获取常数ln(10)。getLn2()获取常数ln(2)。Dfp[]将常数ln(2)拆分为两部分。getLn5()获取常数ln(5)。Dfp[]将常数ln(5)拆分为两部分。getOne()获取常数1。getPi()获取常数π。Dfp[]将常数π拆分为两部分。int获取由此工厂构建的Dfp实例的基数位数。获取弧度到度的转换因子。获取当前的舍入模式。返回FieldElement的运行时类。getSqr2()获取常数√2。获取常数√2 / 2。Dfp[]将常数√2拆分为两部分。getSqr3()获取常数√3。获取常数√3 / 3。getTwo()获取常数2。getZero()获取常数0。inthashCode()newDfp()使用值为0创建一个Dfp。newDfp(byte x) 从字节值创建一个实例。newDfp(byte sign, byte nans) 使用非有限值创建一个Dfp。newDfp(double x) 从双精度值创建一个实例。newDfp(int x) 从整数值创建一个实例。newDfp(long x) 从长整数值创建一个实例。根据字符串表示创建一个Dfp。复制构造函数。voidsetIEEEFlags(int flags) 设置IEEE 854状态标志。voidsetIEEEFlagsBits(int bits) 设置IEEE 854状态标志中的一些位,而不更改已设置的位。void设置舍入模式。
-
字段详细资料
-
FLAG_INVALID
public static final int FLAG_INVALID无效操作的IEEE 854-1987标志。- 另请参阅:
-
FLAG_DIV_ZERO
public static final int FLAG_DIV_ZERO除零的IEEE 854-1987标志。- 另请参阅:
-
FLAG_OVERFLOW
public static final int FLAG_OVERFLOW溢出的IEEE 854-1987标志。- 另请参阅:
-
FLAG_UNDERFLOW
public static final int FLAG_UNDERFLOW下溢的IEEE 854-1987标志。- 另请参阅:
-
FLAG_INEXACT
public static final int FLAG_INEXACT不精确结果的IEEE 854-1987标志。- 另请参阅:
-
-
构造器详细资料
-
DfpField
public DfpField(int decimalDigits) 为指定的基数位数创建一个工厂。请注意,由于
Dfp类使用10000作为其基数,每个基数位等同于4个十进制数字。这意味着请求13、14、15或16个十进制数字实际上在所有情况下都将导致4个基数10000位。- 参数:
-
decimalDigits- 最小十进制位数。
-
-
方法详细资料
-
getRadixDigits
public int getRadixDigits()获取由此工厂构建的Dfp实例的基数位数。- 返回:
- 基数位数
-
setRoundingMode
设置舍入模式。如果未设置,则默认值为DfpField.RoundingMode.ROUND_HALF_EVEN。 -
getRoundingMode
获取当前的舍入模式。- 返回:
- 当前的舍入模式
-
getIEEEFlags
public int getIEEEFlags()获取IEEE 854状态标志。- 返回:
- IEEE 854状态标志
- 另请参阅:
-
clearIEEEFlags
public void clearIEEEFlags()清除IEEE 854状态标志。- 另请参阅:
-
setIEEEFlags
public void setIEEEFlags(int flags) 设置IEEE 854状态标志。- 参数:
-
flags- 标志的期望值 - 另请参阅:
-
setIEEEFlagsBits
public void setIEEEFlagsBits(int bits) 设置IEEE 854状态标志中的一些位,而不更改已设置的位。调用此方法等同于调用
setIEEEFlags(getIEEEFlags() | bits)- 参数:
-
bits- 要设置的位 - 另请参阅:
-
newDfp
创建一个值为0的Dfp。- 返回:
-
一个新的值为0的
Dfp
-
newDfp
从字节值创建一个实例。- 参数:
-
x- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
从int值创建一个实例。- 参数:
-
x- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
从long值创建一个实例。- 参数:
-
x- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
从double值创建一个实例。- 参数:
-
x- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
复制构造函数。- 参数:
-
d- 要复制的实例 - 返回:
-
一个与d具有相同值的新的
Dfp
-
newDfp
给定一个字符串表示形式创建一个Dfp。- 参数:
-
s- 实例的字符串表示形式 - 返回:
-
从指定字符串解析出的新的
Dfp
-
newDfp
创建一个具有非有限值的Dfp。- 参数:
-
sign- 要创建的Dfp的符号 -
nans- 值的代码,必须是Dfp.INFINITE、Dfp.SNAN、Dfp.QNAN之一 - 返回:
-
具有非有限值的新的
Dfp
-
getZero
获取常量0。 -
getOne
获取常量1。 -
getRuntimeClass
返回FieldElement的运行时类。- 指定者:
-
getRuntimeClass在接口中Field<Dfp> - 返回:
-
代表此对象的运行时类的
Class对象。
-
getTwo
获取常量2。- 返回:
-
值为2的
Dfp
-
getSqr2
获取常量√2。- 返回:
-
值为√2的
Dfp
-
getSqr2Split
获取常量√2的两个部分。- 返回:
-
值为√2的
Dfp的两个部分
-
getSqr2Reciprocal
获取常量√2 / 2。- 返回:
-
值为√2 / 2的
Dfp
-
getSqr3
获取常量√3。- 返回:
-
值为√3的
Dfp
-
getSqr3Reciprocal
获取常量√3 / 3。- 返回:
-
值为√3 / 3的
Dfp
-
getPi
获取常量π。- 返回:
-
值为π的
Dfp
-
getDegToRad
获取度到弧度的转换因子。- 返回:
-
度到弧度转换因子的
Dfp
-
getRadToDeg
获取弧度到度的转换因子。- 返回:
-
弧度到度转换因子的
Dfp
-
getPiSplit
获取常量π的两个部分。- 返回:
-
值为π的
Dfp的两个部分
-
getE
获取常量e。- 返回:
-
值为e的
Dfp
-
getESplit
获取常量e的两个部分。- 返回:
-
值为e的
Dfp的两个部分
-
getLn2
获取常量ln(2)。- 返回:
-
值为ln(2)的
Dfp
-
getLn2Split
获取常量ln(2)的两个部分。- 返回:
-
值为ln(2)的
Dfp的两个部分
-
getLn5
获取常量ln(5)。- 返回:
-
值为ln(5)的
Dfp
-
getLn5Split
获取常量ln(5)的两个部分。- 返回:
-
值为ln(5)的
Dfp的两个部分
-
getLn10
获取常量ln(10)。- 返回:
-
值为ln(10)的
Dfp
-
equals
如果两个字段具有相同数量的基数位和相同的舍入模式,则认为它们相等。
-
hashCode
public int hashCode() -
computeExp
计算exp(a)。- 参数:
-
a- 我们想要指数的数字 -
one- 值为1的常量,精度为所需精度 - 返回:
- exp(a)
-
computeLn
计算ln(a)。设f(x) = ln(x),我们知道f'(x) = 1/x,因此根据泰勒定理,我们有: ----- n+1 n f(x) = \ (-1) (x - 1) / ---------------- for 1 <= n <= infinity ----- n or 2 3 4 (x-1) (x-1) (x-1) ln(x) = (x-1) - ----- + ------ - ------ + ... 2 3 4 alternatively, 2 3 4 x x x ln(x+1) = x - - + - - - + ... 2 3 4 This series can be used to compute ln(x), but it converges too slowly. If we substitute -x for x above, we get 2 3 4 x x x ln(1-x) = -x - - - - - - + ... 2 3 4 Note that all terms are now negative. Because the even powered ones absorbed the sign. Now, subtract the series above from the previous one to get ln(x+1) - ln(1-x). Note the even terms cancel out leaving only the odd ones 3 5 7 2x 2x 2x ln(x+1) - ln(x-1) = 2x + --- + --- + ---- + ... 3 5 7 By the property of logarithms that ln(a) - ln(b) = ln (a/b) we have: 3 5 7 x+1 / x x x \ ln ----- = 2 * | x + ---- + ---- + ---- + ... | x-1 \ 3 5 7 / But now we- 参数:
-
a- number for which we want the exponential -
one- constant with value 1 at desired precision -
two- constant with value 2 at desired precision - 返回:
- ln(a)
-
getExtendedField
Get extended field for accuracy conversion.- 参数:
-
digitsFactor- multiplication factor for number of digits -
computeConstants- if true, the transcendental constants for the given precision must be computed (setting this flag to false is RESERVED for the internal recursive call) - 返回:
- field with extended precision
- 从以下版本开始:
- 1.7
-