29#include <rtl/math.hxx>
52 nRes =
p->nByte;
break;
59 else if(
p->nInteger < 0 )
80 else if(
p->nLong < 0 )
98 sal_Int64 val =
p->nInt64;
105 else if(
p->nInt64 < 0 )
126 else if(
p->nSingle < 0 )
131 nRes =
static_cast<sal_uInt8>(rtl::math::round(
p->nSingle ));
143 p->pDecimal->getDouble( dVal );
157 nRes =
static_cast<sal_uInt8>(rtl::math::round( dVal ));
196 nRes =
p->nByte;
break;
200 aTmp.
nChar = *
p->pChar;
goto ref;
205 aTmp.
nLong = *
p->pLong;
goto ref;
207 aTmp.
nULong = *
p->pULong;
goto ref;
210 aTmp.
nUShort = *
p->pUShort;
goto ref;
212 aTmp.
nSingle = *
p->pSingle;
goto ref;
215 aTmp.
nDouble = *
p->pDouble;
goto ref;
218 aTmp.
nInt64 = *
p->pnInt64;
goto ref;
220 aTmp.
uInt64 = *
p->puInt64;
goto ref;
239 p->nInteger =
n;
break;
242 p->nUShort =
n;
break;
246 p->nULong =
n;
break;
248 p->nSingle =
n;
break;
251 p->nDouble =
n;
break;
255 p->nInt64 =
n;
break;
257 p->uInt64 =
n;
break;
270 p->pOUString =
new OUString;
271 ImpCvtNum(
static_cast<double>(
n), 0, *
p->pOUString );
285 *
p->pByte =
n;
break;
288 *
p->pInteger =
n;
break;
291 *
p->pUShort =
n;
break;
293 *
p->pLong =
n;
break;
295 *
p->pULong =
n;
break;
297 *
p->pSingle =
n;
break;
300 *
p->pDouble =
n;
break;
304 *
p->pnInt64 =
n;
break;
306 *
p->puInt64 =
n;
break;
static void SetError(ErrCode)
void setByte(sal_uInt8 val)
sal_uInt8 GetByte() const
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
bool LibreOffice6FloatingPointMode()
#define ERRCODE_BASIC_NO_OBJECT
#define ERRCODE_BASIC_MATH_OVERFLOW
#define ERRCODE_BASIC_CONVERSION
void ImpPutByte(SbxValues *p, sal_uInt8 n)
sal_uInt8 ImpGetByte(const SbxValues *p)
ErrCode ImpScan(const OUString &rSrc, double &nVal, SbxDataType &rType, sal_uInt16 *pLen, bool bOnlyIntntl)
SbxDecimal * ImpCreateDecimal(SbxValues *p)
void ImpCvtNum(double nNum, short nPrec, OUString &rRes, bool bCoreString=false)
constexpr auto CURRENCY_FACTOR
constexpr auto SbxMAXBYTE