final class PosDouble extends AnyVal
An AnyVal for positive Doubles.
Note: a PosDouble may not equal 0. If you want positive
number or 0, use PosZDouble.
Because PosDouble is an AnyVal it
will usually be as efficient as an Double, being
boxed only when a Double would have been boxed.
The PosDouble.apply factory method is
implemented in terms of a macro that checks literals for
validity at compile time. Calling
PosDouble.apply with a literal
Double value will either produce a valid
PosDouble instance at run time or an error at
compile time. Here's an example:
scala> import anyvals._
import anyvals._
scala> PosDouble(1.0)
res1: org.scalactic.anyvals.PosDouble = PosDouble(1.0)
scala> PosDouble(0.0)
<console>:14: error: PosDouble.apply can only be invoked on a positive (i > 0.0) floating point literal, like PosDouble(42.0).
PosDouble(0.0)
^
PosDouble.apply cannot be used if the value
being passed is a variable (i.e., not a literal),
because the macro cannot determine the validity of variables
at compile time (just literals). If you try to pass a
variable to PosDouble.apply, you'll get a
compiler error that suggests you use a different factor
method, PosDouble.from, instead:
scala> val x = 1.0
x: Double = 1.0
scala> PosDouble(x)
<console>:15: error: PosDouble.apply can only be invoked on a floating point literal, like PosDouble(42.0). Please use PosDouble.from instead.
PosDouble(x)
^
The PosDouble.from factory method will inspect
the value at runtime and return an
Option[PosDouble]. If the value is valid,
PosDouble.from will return a
Some[PosDouble], else it will return a
None. Here's an example:
scala> PosDouble.from(x) res4: Option[org.scalactic.anyvals.PosDouble] = Some(PosDouble(1.0)) scala> val y = 0.0 y: Double = 0.0 scala> PosDouble.from(y) res5: Option[org.scalactic.anyvals.PosDouble] = None
The PosDouble.apply factory method is marked
implicit, so that you can pass literal Doubles
into methods that require PosDouble, and get the
same compile-time checking you get when calling
PosDouble.apply explicitly. Here's an example:
scala> def invert(pos: PosDouble): Double = Double.MaxValue - pos
invert: (pos: org.scalactic.anyvals.PosDouble)Double
scala> invert(1.1)
res6: Double = 1.7976931348623157E308
scala> invert(Double.MaxValue)
res8: Double = 0.0
scala> invert(0.0)
<console>:15: error: PosDouble.apply can only be invoked on a positive (i > 0.0) floating point literal, like PosDouble(42.0).
invert(0.0)
^
scala> invert(-1.0)
<console>:15: error: PosDouble.apply can only be invoked on a positive (i > 0.0) floating point literal, like PosDouble(42.0).
invert(-1.0)
^
This example also demonstrates that the
PosDouble companion object also defines implicit
widening conversions when a similar conversion is provided in
Scala. This makes it convenient to use a
PosDouble where a Double is
needed. An example is the subtraction in the body of the
invert method defined above,
Double.MaxValue - pos. Although
Double.MaxValue is a Double, which
has no - method that takes a
PosDouble (the type of pos), you
can still subtract pos, because the
PosDouble will be implicitly widened to
Double.
- Source
- PosDouble.scala
- Alphabetic
- By Inheritance
- PosDouble
- AnyVal
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- Any
-
final
def
##(): Int
- Definition Classes
- Any
-
def
%(x: Double): Double
Returns the remainder of the division of this value by
x. -
def
%(x: Float): Double
Returns the remainder of the division of this value by
x. -
def
%(x: Long): Double
Returns the remainder of the division of this value by
x. -
def
%(x: Int): Double
Returns the remainder of the division of this value by
x. -
def
%(x: Char): Double
Returns the remainder of the division of this value by
x. -
def
%(x: Short): Double
Returns the remainder of the division of this value by
x. -
def
%(x: Byte): Double
Returns the remainder of the division of this value by
x. -
def
*(x: Double): Double
Returns the product of this value and
x. -
def
*(x: Float): Double
Returns the product of this value and
x. -
def
*(x: Long): Double
Returns the product of this value and
x. -
def
*(x: Int): Double
Returns the product of this value and
x. -
def
*(x: Char): Double
Returns the product of this value and
x. -
def
*(x: Short): Double
Returns the product of this value and
x. -
def
*(x: Byte): Double
Returns the product of this value and
x. -
def
+(x: Double): Double
Returns the sum of this value and
x. -
def
+(x: Float): Double
Returns the sum of this value and
x. -
def
+(x: Long): Double
Returns the sum of this value and
x. -
def
+(x: Int): Double
Returns the sum of this value and
x. -
def
+(x: Char): Double
Returns the sum of this value and
x. -
def
+(x: Short): Double
Returns the sum of this value and
x. -
def
+(x: Byte): Double
Returns the sum of this value and
x. -
def
+(x: String): String
Converts this
PosDouble's value to a string then concatenates the given string. -
def
-(x: Double): Double
Returns the difference of this value and
x. -
def
-(x: Float): Double
Returns the difference of this value and
x. -
def
-(x: Long): Double
Returns the difference of this value and
x. -
def
-(x: Int): Double
Returns the difference of this value and
x. -
def
-(x: Char): Double
Returns the difference of this value and
x. -
def
-(x: Short): Double
Returns the difference of this value and
x. -
def
-(x: Byte): Double
Returns the difference of this value and
x. -
def
/(x: Double): Double
Returns the quotient of this value and
x. -
def
/(x: Float): Double
Returns the quotient of this value and
x. -
def
/(x: Long): Double
Returns the quotient of this value and
x. -
def
/(x: Int): Double
Returns the quotient of this value and
x. -
def
/(x: Char): Double
Returns the quotient of this value and
x. -
def
/(x: Short): Double
Returns the quotient of this value and
x. -
def
/(x: Byte): Double
Returns the quotient of this value and
x. -
def
<(x: Double): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<(x: Float): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<(x: Long): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<(x: Int): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<(x: Char): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<(x: Short): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<(x: Byte): Boolean
Returns
trueif this value is less than x,falseotherwise. -
def
<=(x: Double): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
def
<=(x: Float): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
def
<=(x: Long): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
def
<=(x: Int): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
def
<=(x: Char): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
def
<=(x: Short): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
def
<=(x: Byte): Boolean
Returns
trueif this value is less than or equal to x,falseotherwise. -
final
def
==(arg0: Any): Boolean
- Definition Classes
- Any
-
def
>(x: Double): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>(x: Float): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>(x: Long): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>(x: Int): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>(x: Char): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>(x: Short): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>(x: Byte): Boolean
Returns
trueif this value is greater than x,falseotherwise. -
def
>=(x: Double): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
def
>=(x: Float): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
def
>=(x: Long): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
def
>=(x: Int): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
def
>=(x: Char): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
def
>=(x: Short): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
def
>=(x: Byte): Boolean
Returns
trueif this value is greater than or equal to x,falseotherwise. -
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- def ceil: PosDouble
- def floor: PosZDouble
-
def
getClass(): Class[_ <: AnyVal]
- Definition Classes
- AnyVal → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPosInfinity: Boolean
- def isWhole: Boolean
-
def
max(that: PosDouble): PosDouble
Returns
thisifthis > thatorthatotherwise. -
def
min(that: PosDouble): PosDouble
Returns
thisifthis < thatorthatotherwise. - def round: PosZLong
-
def
toByte: Byte
Converts this
PosDoubleto aByte. -
def
toChar: Char
Converts this
PosDoubleto aChar. -
def
toDegrees: Double
Converts an angle measured in radians to an approximately equivalent angle measured in degrees.
Converts an angle measured in radians to an approximately equivalent angle measured in degrees.
- returns
the measurement of the angle x in degrees.
-
def
toDouble: Double
Converts this
PosDoubleto aDouble. -
def
toFloat: Float
Converts this
PosDoubleto aFloat. -
def
toInt: Int
Converts this
PosDoubleto anInt. -
def
toLong: Long
Converts this
PosDoubleto aLong. -
def
toRadians: Double
Converts an angle measured in degrees to an approximately equivalent angle measured in radians.
Converts an angle measured in degrees to an approximately equivalent angle measured in radians.
- returns
the measurement of the angle x in radians.
-
def
toShort: Short
Converts this
PosDoubleto aShort. -
def
toString(): String
A string representation of this
PosDouble.A string representation of this
PosDouble.- Definition Classes
- PosDouble → Any
-
def
unary_+: PosDouble
Returns this value, unmodified.
-
def
unary_-: Double
Returns the negation of this value.
- val value: Double
Deprecated Value Members
-
def
to(end: Double, step: Double): Inclusive[Double]
Create an inclusive
Rangefrom thisPosDoublevalue to the specifiedendwith the specifiedstepvalue.Create an inclusive
Rangefrom thisPosDoublevalue to the specifiedendwith the specifiedstepvalue.- end
The final bound of the range to make.
- step
The number to increase by for each step of the range.
- returns
A scala.collection.immutable.NumericRange.Inclusive[Double] from
thisup to and includingend.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's to function instead
-
def
to(end: Double): Partial[Double, NumericRange[Double]]
Create an inclusive
Range.Partialfrom thisPosDoublevalue to the specifiedendwith step value 1.Create an inclusive
Range.Partialfrom thisPosDoublevalue to the specifiedendwith step value 1.- end
The final bound of the range to make.
- returns
A NumericRange[Double]] from
thisup to and includingend.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's to function instead
-
def
until(end: Double, step: Double): Exclusive[Double]
Create a
Rangefrom thisPosDoublevalue until the specifiedend(exclusive) with the specifiedstepvalue.Create a
Rangefrom thisPosDoublevalue until the specifiedend(exclusive) with the specifiedstepvalue.- end
The final bound of the range to make.
- step
The number to increase by for each step of the range.
- returns
A scala.collection.immutable.NumericRange.Exclusive[Double] from
thisup to but not includingend.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's until's function instead
-
def
until(end: Double): Partial[Double, NumericRange[Double]]
Create a
Range.Partialfrom thisPosDoublevalue until the specifiedend(exclusive) with step value 1.Create a
Range.Partialfrom thisPosDoublevalue until the specifiedend(exclusive) with step value 1.- end
The final bound of the range to make.
- returns
A NumericRange[Double]] from
thisup to but not includingend.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's until function instead