Double 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
类 Double
在 对象中包装基元类型的 double
值。
[Android.Runtime.Register("java/lang/Double", DoNotGenerateAcw=true)]
public sealed class Double : Java.Lang.Number, IConvertible, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/lang/Double", DoNotGenerateAcw=true)>]
type Double = class
inherit Number
interface IConvertible
interface IComparable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 继承
- 属性
- 实现
注解
类 Double
在 对象中包装基元类型的 double
值。 类型的 Double
对象包含类型为 double
的单个字段。
此外,此类提供了几种方法用于将 转换为 double
String
和 String
转换为 double
,以及处理 double
时有用的其他常量和方法。
<-- Android 删除:ValueBased 上的段落
这是一个 基于值的 类;程序员应将 #equals (对象) 的实例视为可互换的实例,并且不应使用实例进行同步,否则可能会出现不可预知的行为。 例如,在将来的版本中,同步可能会失败。 -->
<h2>equivalenceRelation>浮点相等性、等效性和 Comparison</h2>
IEEE 754 浮点值包括有限非零值、有符号零 (+0.0
和 -0.0
) 、有符号无穷大 Double#POSITIVE_INFINITY正无穷大和 Double#NEGATIVE_INFINITY负无穷大) ,以及 Double#NaN NaN (非数字) 。
>一<组值的等效关系<>是反身、对称和可传递的值对上的布尔关系。 有关等效关系和对象相等性的更多讨论,请参阅 Object#equals Object.equals
规范。 等效关系将其操作的值分区为称为 等效类的集。 等价类的所有成员在关系下彼此相等。 等效类只能包含一个成员。 至少出于某些目的,等效类的所有成员都可以相互替换。 具体而言,在数值表达式中,等效值可以在<>不更改表达式结果的情况下相互替换<>,这意味着更改表达式结果的等效类。
值得注意的是,对浮点值的内置==
操作不是<<>>等效关系。 尽管没有定义等效关系,但 IEEE 754 ==
运算符的语义经过精心设计,以满足数值计算的其他需求。 有两种例外情况,即浮点值上的 等效关系的属性不满足 ==
:
<ul>
<如果>v1
和 v2
都是 NaN,则 v1 == v2
具有值 false
。 因此,对于两个 NaN 参数,<等效关系的 em>reflexive</em> 属性是<运算符满足==
的 em>not</em>。
<li>如果 v1
表示 +0.0
而 v2
表示 -0.0
,反之亦然,则 v1 == v2
具有 值 true
,即使 +0.0
和 -0.0
在各种浮点运算下是可区分的。 例如, 的计算结果为正无穷大,1.0/+0.0
而 计算结果为><负</>负无穷大,正无穷大和负无穷大既不相等,也不相1.0/-0.0
等。 因此,虽然带符号零输入通常确定零结果的符号,但由于除以零, +0.0
并且 -0.0
通常不能相互替换。 零输入的符号也对某些数学库方法的结果具有不可替代的影响。
</ul>
对于使用内置比较运算符 (<
、 <=
等 ) 的有序比较,NaN 值具有另一种异常情况:NaN 既不小于也不大于,也不等于任何值,包括自身。 这意味着比较的三分法不会<><>保留。
为了为 equals
和 compareTo
方法提供适当的语义,这些方法不能只是包装 ==
或有序比较操作。 相反, Double#equals equals
将 NaN 参数定义为彼此相等,并将 定义为 +0.0
<em>not</em> 等于 -0.0
,还原反身性。 对于比较, 定义一个总顺序, Double#compareTo compareTo
其中 -0.0
小于 +0.0
,其中 NaN 等于自身并被视为大于正无穷大。
和 compareTo
的操作equals
语义以 #doubleToLongBits 按位将浮点值转换为整型值来表示。
实现<#compareTo compareTo
的 em>自然排序</em> 与 equals 一致。 也就是说,当且仅当compareTo
两个对象返回零时,两个对象才会报告为相等equals
。
为 equals
和 compareTo
定义的调整行为允许包装类的实例能够正常使用传统数据结构。 例如,将 NaN 值 equals
定义为彼此允许 NaN 用作 的 java.util.HashSet HashSet
元素或 作为 的 java.util.HashMap HashMap
键。 同样,定义为 compareTo
总排序(包括 +0.0
、 -0.0
和 NaN)允许包装类的实例用作 的 java.util.SortedSet SortedSet
元素或 作为 的 java.util.SortedMap SortedMap
键。
在 1.0 中添加。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
Double(Double) |
构造表示基元 |
Double(String) |
构造一个新分配 |
字段
Bytes |
用于表示 |
MaxExponent |
有限 |
MaxValue |
包含 类型 |
MinExponent |
规范化 |
MinNormal |
一个常量,该常量包含类型 |
MinValue |
一个常量,该常量包含类型 |
NaN |
一个常量,包含非数字 (NaN) 类型的 |
NegativeInfinity |
一个常量,该常量包含 类型的 |
PositiveInfinity |
一个常量,该常量包含 类型的 |
Size |
用于表示 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsInfinite |
|
IsNaN |
|
JniIdentityHashCode |
类 |
JniPeerMembers |
类 |
PeerReference |
类 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 (继承自 Number) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 (继承自 Number) |
Type |
表示 |
方法
ByteValue() |
以 的形式 |
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
Compare(Double, Double) |
比较两个指定的 |
CompareTo(Double) |
以数字方式比较两个 |
Dispose() |
类 |
Dispose(Boolean) |
类 |
DoubleToLongBits(Double) |
根据 IEEE 754 浮点“双格式”位布局返回指定浮点值的表示形式。 |
DoubleToRawLongBits(Double) |
根据 IEEE 754 浮点“双格式”位布局返回指定浮点值的表示形式,保留非数字 (NaN) 值。 |
DoubleValue() |
返回 |
Equals(Object) |
指示某个其他对象是否“等于”此对象。 (继承自 Object) |
FloatValue() |
在收缩基元转换后以 的形式 |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
HashCode(Double) |
返回值的哈希代码 |
IntValue() |
在收缩基元转换后以 的形式 |
InvokeIsInfinite(Double) |
|
InvokeIsNaN(Double) |
|
IsFinite(Double) |
|
JavaFinalize() |
当垃圾回收确定不再引用对象时,由垃圾回收器对对象调用。 (继承自 Object) |
LongBitsToDouble(Int64) |
返回对应于 |
LongValue() |
在收缩基元转换后以 的形式 |
Max(Double, Double) |
返回两 |
Min(Double, Double) |
返回两 |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
ParseDouble(String) |
返回一个新的 |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
ShortValue() |
以 的形式 |
Sum(Double, Double) |
根据 + 运算符将两 |
ToArray<T>() |
类 |
ToHexString(Double) |
返回参数的 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
ToString(Double) |
返回参数的 |
UnregisterFromRuntime() |
类 |
ValueOf(Double) |
返回表示 |
ValueOf(String) |
返回一个 |
Wait() |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<> (继承自 Object) |
Wait(Int64) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
Wait(Int64, Int32) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
运算符
Explicit(Double to Double) |
类 |
显式接口实现
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
类 |
GetJniTypeName(IJavaPeerable) |
类 |