1 module java.lang.Float; 2 3 import java.lang.util; 4 import java.lang.exceptions; 5 import java.lang.Number; 6 import java.lang.Class; 7 import java.lang.String; 8 9 version(Tango){ 10 static import tango.text.convert.Float; 11 } else { // Phobos 12 static import std.conv; 13 } 14 15 class Float : Number { 16 17 public static float POSITIVE_INFINITY = float.infinity; 18 public static float NEGATIVE_INFINITY = -float.infinity; 19 public static float NaN = float.nan; 20 public static float MAX_VALUE = 3.4028235e+38f; 21 public static float MIN_VALUE = float.min_normal; //1.4e-45f 22 public static int SIZE = 32; 23 private float value = 0; 24 25 this( float value ){ 26 super(); 27 this.value = value; 28 } 29 this( String str ){ 30 super(); 31 this.value = parseFloat(str); 32 } 33 public static String toString( float value ){ 34 return String_valueOf(value); 35 } 36 public static float parseFloat( String s ){ 37 version(Tango){ 38 try{ 39 return tango.text.convert.Float.toFloat( s ); 40 } 41 catch( IllegalArgumentException e ){ 42 throw new NumberFormatException( e ); 43 } 44 } else { // Phobos 45 try{ 46 return std.conv.to!(float)(s); 47 } 48 catch( std.conv.ConvException e ){ 49 throw new NumberFormatException( e ); 50 } 51 } 52 } 53 54 private static Class TYPE_; 55 public static Class TYPE(){ 56 if( TYPE_ is null ){ 57 TYPE_ = Class.fromType!(float); 58 } 59 return TYPE_; 60 } 61 62 override 63 public byte byteValue(){ 64 return cast(byte)value; 65 } 66 67 override 68 public short shortValue(){ 69 return cast(short)value; 70 } 71 72 override 73 public int intValue(){ 74 return cast(int)value; 75 } 76 77 override 78 public long longValue(){ 79 return cast(long)value; 80 } 81 82 override 83 public float floatValue(){ 84 return cast(float)value; 85 } 86 87 override 88 public double doubleValue(){ 89 return cast(double)value; 90 } 91 } 92 93