1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7 #include "FloatValue.h" 8 9 #include <stdio.h> 10 11 12 FloatValue::FloatValue(const BVariant& value) 13 : 14 fValue(value) 15 { 16 } 17 18 19 FloatValue::~FloatValue() 20 { 21 } 22 23 24 bool 25 FloatValue::ToString(BString& _string) const 26 { 27 char buffer[128]; 28 29 switch (fValue.Type()) { 30 case B_FLOAT_TYPE: 31 { 32 snprintf(buffer, sizeof(buffer), "%f", fValue.ToFloat()); 33 break; 34 } 35 case B_DOUBLE_TYPE: 36 { 37 snprintf(buffer, sizeof(buffer), "%g", fValue.ToDouble()); 38 break; 39 } 40 default: 41 return false; 42 } 43 44 BString string(buffer); 45 if (string.Length() == 0) 46 return false; 47 48 _string = string; 49 return true; 50 } 51 52 53 bool 54 FloatValue::ToVariant(BVariant& _value) const 55 { 56 _value = fValue; 57 return true; 58 } 59 60 61 bool 62 FloatValue::operator==(const Value& other) const 63 { 64 const FloatValue* otherFloat = dynamic_cast<const FloatValue*>(&other); 65 return otherFloat != NULL ? fValue == otherFloat->fValue : false; 66 } 67