2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file FBaseFloat.cpp
19 * @brief This is the implementation file for Float class.
28 #include <FBaseFloat.h>
29 #include <FBaseResult.h>
30 #include <FBaseSysLog.h>
31 #include "FBase_LocalizedNumParser.h"
33 namespace Tizen { namespace Base
39 FloatBitRep(float f = 0.0)
44 FloatBitRep(unsigned int i)
53 Float::Float(float value)
59 Float::Float(const Float& value)
70 Float::operator =(const Float& rhs)
80 Float::Compare(float f1, float f2)
101 Float::CompareTo(const Float& value) const
103 return(Float::Compare(this->value, value.value));
107 Float::Equals(const Object& obj) const
109 const Float* pOther = dynamic_cast< const Float* >(&obj);
116 if (Float::Compare(this->value, (*pOther).value) == 0)
127 Float::GetHashCode(void) const
129 float* pTemp = const_cast< float* >(&value);
130 int* pValue = reinterpret_cast< int* >(pTemp);
135 Float::GetHashCode(float val)
137 int* pValue = reinterpret_cast< int* >(&val);
142 Float::Parse(const String& s, float& ret)
144 double tmpRet = _LocalizedNumParser::ToFloat(s, "");
148 result r = GetLastResult();
149 SysLogException(NID_BASE, r, "[%s] Propagating.", GetErrorMessage(r));
158 Float::ToChar(void) const
160 return static_cast< char >(value);
164 Float::ToShort(void) const
166 return static_cast< short >(value);
170 Float::ToInt(void) const
172 return static_cast< int >(value);
176 Float::ToLong(void) const
178 return static_cast< long >(value);
182 Float::ToLongLong(void) const
184 return static_cast< long long >(value);
188 Float::ToFloat(void) const
194 Float::ToDouble(void) const
196 return static_cast< double >(value);
200 Float::ToString(void) const
202 return Float::ToString(value);
206 Float::ToString(float value)
208 return _LocalizedNumParser::ToString(value, "");
212 Float::ToBits(float value)
215 bitRep.value = value;
220 Float::ToFloatFromBits(int value)
228 Float::IsFinite(float value)
230 return isfinite(value);
234 Float::IsInfinity(void) const
236 return Float::IsInfinity(value);
240 Float::IsInfinity(float value)
242 return !Float::IsFinite(value);
246 Float::IsNaN(void) const
248 return Float::IsNaN(value);
252 Float::IsNaN(float value)
258 Float::GetMaxValue(void)
264 Float::GetMinValue(void)