final class PosFloat extends AnyVal
An AnyVal
for positive Float
s.
Note: a PosFloat
may not equal 0. If you want positive
number or 0, use PosZFloat.
Because PosFloat
is an AnyVal
it
will usually be as efficient as an Float
, being
boxed only when an Float
would have been boxed.
The PosFloat.apply
factory method is implemented
in terms of a macro that checks literals for validity at
compile time. Calling PosFloat.apply
with a
literal Float
value will either produce a valid
PosFloat
instance at run time or an error at
compile time. Here's an example:
scala> import anyvals._ import anyvals._ scala> PosFloat(1.0F) res0: org.scalactic.anyvals.PosFloat = PosFloat(1.0) scala> PosFloat(0.0F) <console>:14: error: PosFloat.apply can only be invoked on a positive (i > 0.0F) floating point literal, like PosFloat(42.0F). PosFloat(0.0F) ^
PosFloat.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 PosFloat.apply
, you'll get a compiler error
that suggests you use a different factor method,
PosFloat.from
, instead:
scala> val x = 1.0F x: Float = 1.0 scala> PosFloat(x) <console>:15: error: PosFloat.apply can only be invoked on a floating point literal, like PosFloat(42.0F). Please use PosFloat.from instead. PosFloat(x) ^
The PosFloat.from
factory method will inspect
the value at runtime and return an
Option[PosFloat]
. If the value is valid,
PosFloat.from
will return a
Some[PosFloat]
, else it will return a
None
. Here's an example:
scala> PosFloat.from(x) res3: Option[org.scalactic.anyvals.PosFloat] = Some(PosFloat(1.0)) scala> val y = 0.0F y: Float = 0.0 scala> PosFloat.from(y) res4: Option[org.scalactic.anyvals.PosFloat] = None
The PosFloat.apply
factory method is marked
implicit, so that you can pass literal Float
s
into methods that require PosFloat
, and get the
same compile-time checking you get when calling
PosFloat.apply
explicitly. Here's an example:
scala> def invert(pos: PosFloat): Float = Float.MaxValue - pos invert: (pos: org.scalactic.anyvals.PosFloat)Float scala> invert(1.1F) res5: Float = 3.4028235E38 scala> invert(Float.MaxValue) res6: Float = 0.0 scala> invert(0.0F) <console>:15: error: PosFloat.apply can only be invoked on a positive (i > 0.0F) floating point literal, like PosFloat(42.0F). invert(0.0F) ^ scala> invert(-1.1F) <console>:15: error: PosFloat.apply can only be invoked on a positive (i > 0.0F) floating point literal, like PosFloat(42.0F). invert(-1.1F) ^
This example also demonstrates that the PosFloat
companion object also defines implicit widening conversions
when no loss of precision will occur. This makes it convenient to use a
PosFloat
where a Float
or wider
type is needed. An example is the subtraction in the body of
the invert
method defined above,
Float.MaxValue - pos
. Although
Float.MaxValue
is a Float
, which
has no -
method that takes a
PosFloat
(the type of pos
), you can
still subtract pos
, because the
PosFloat
will be implicitly widened to
Float
.
- Source
- PosFloat.scala
- Alphabetic
- By Inheritance
- PosFloat
- 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): Float
Returns the remainder of the division of this value by
x
. -
def
%(x: Long): Float
Returns the remainder of the division of this value by
x
. -
def
%(x: Int): Float
Returns the remainder of the division of this value by
x
. -
def
%(x: Char): Float
Returns the remainder of the division of this value by
x
. -
def
%(x: Short): Float
Returns the remainder of the division of this value by
x
. -
def
%(x: Byte): Float
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): Float
Returns the product of this value and
x
. -
def
*(x: Long): Float
Returns the product of this value and
x
. -
def
*(x: Int): Float
Returns the product of this value and
x
. -
def
*(x: Char): Float
Returns the product of this value and
x
. -
def
*(x: Short): Float
Returns the product of this value and
x
. -
def
*(x: Byte): Float
Returns the product of this value and
x
. -
def
+(x: Double): Double
Returns the sum of this value and
x
. -
def
+(x: Float): Float
Returns the sum of this value and
x
. -
def
+(x: Long): Float
Returns the sum of this value and
x
. -
def
+(x: Int): Float
Returns the sum of this value and
x
. -
def
+(x: Char): Float
Returns the sum of this value and
x
. -
def
+(x: Short): Float
Returns the sum of this value and
x
. -
def
+(x: Byte): Float
Returns the sum of this value and
x
. -
def
+(x: String): String
Converts this
PosFloat
'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): Float
Returns the difference of this value and
x
. -
def
-(x: Long): Float
Returns the difference of this value and
x
. -
def
-(x: Int): Float
Returns the difference of this value and
x
. -
def
-(x: Char): Float
Returns the difference of this value and
x
. -
def
-(x: Short): Float
Returns the difference of this value and
x
. -
def
-(x: Byte): Float
Returns the difference of this value and
x
. -
def
/(x: Double): Double
Returns the quotient of this value and
x
. -
def
/(x: Float): Float
Returns the quotient of this value and
x
. -
def
/(x: Long): Float
Returns the quotient of this value and
x
. -
def
/(x: Int): Float
Returns the quotient of this value and
x
. -
def
/(x: Char): Float
Returns the quotient of this value and
x
. -
def
/(x: Short): Float
Returns the quotient of this value and
x
. -
def
/(x: Byte): Float
Returns the quotient of this value and
x
. -
def
<(x: Double): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Float): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Long): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Int): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Char): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Short): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Byte): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<=(x: Double): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Float): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Long): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Int): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Char): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Short): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Byte): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
final
def
==(arg0: Any): Boolean
- Definition Classes
- Any
-
def
>(x: Double): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Float): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Long): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Int): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Char): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Short): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Byte): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>=(x: Double): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Float): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Long): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Int): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Char): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Short): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Byte): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- def ceil: PosFloat
- def floor: PosZFloat
-
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: PosFloat): PosFloat
Returns
this
ifthis > that
orthat
otherwise. -
def
min(that: PosFloat): PosFloat
Returns
this
ifthis < that
orthat
otherwise. - def round: PosZInt
-
def
toByte: Byte
Converts this
PosFloat
to aByte
. -
def
toChar: Char
Converts this
PosFloat
to aChar
. -
def
toDegrees: Float
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
PosFloat
to aDouble
. -
def
toFloat: Float
Converts this
PosFloat
to aFloat
. -
def
toInt: Int
Converts this
PosFloat
to anInt
. -
def
toLong: Long
Converts this
PosFloat
to aLong
. -
def
toRadians: Float
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
PosFloat
to aShort
. -
def
toString(): String
A string representation of this
PosFloat
.A string representation of this
PosFloat
.- Definition Classes
- PosFloat → Any
-
def
unary_+: PosFloat
Returns this value, unmodified.
-
def
unary_-: Float
Returns the negation of this value.
- val value: Float
Deprecated Value Members
-
def
to(end: Float, step: Float): Inclusive[Float]
Create an inclusive
Range
from thisPosFloat
value to the specifiedend
with the specifiedstep
value.Create an inclusive
Range
from thisPosFloat
value to the specifiedend
with the specifiedstep
value.- 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[Float] from
this
up 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: Float): Partial[Float, NumericRange[Float]]
Create an inclusive
Range.Partial
from thisPosFloat
value to the specifiedend
with step value 1.Create an inclusive
Range.Partial
from thisPosFloat
value to the specifiedend
with step value 1.- end
The final bound of the range to make.
- returns
A NumericRange[Float] from
this
up 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: Float, step: Float): Exclusive[Float]
Create a
Range
(exclusive) from thisPosFloat
value until the specifiedend
(exclusive) with the specifiedstep
value.Create a
Range
(exclusive) from thisPosFloat
value until the specifiedend
(exclusive) with the specifiedstep
value.- 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[Float] from
this
up to but not includingend
.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's until function instead
-
def
until(end: Float): Partial[Float, NumericRange[Float]]
Create a
Range.Partial
from thisPosFloat
value until the specifiedend
(exclusive) with step value 1.Create a
Range.Partial
from thisPosFloat
value until the specifiedend
(exclusive) with step value 1.- end
The final bound of the range to make.
- returns
A NumericRange[Float]] from
this
up to but not includingend
.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's until function instead