15#ifndef QGSFRACTIONNUMERICFORMAT_H 
   16#define QGSFRACTIONNUMERICFORMAT_H 
   39    QString 
id() 
const override;
 
   54    bool useDedicatedUnicodeCharacters() 
const;
 
   62    void setUseDedicatedUnicodeCharacters( 
bool enabled );
 
   69    bool useUnicodeSuperSubscript() 
const;
 
   76    void setUseUnicodeSuperSubscript( 
bool enabled );
 
   82    bool showThousandsSeparator() 
const;
 
   88    void setShowThousandsSeparator( 
bool show );
 
   94    bool showPlusSign() 
const;
 
  100    void setShowPlusSign( 
bool show );
 
  108    QChar thousandsSeparator() 
const;
 
  116    void setThousandsSeparator( QChar character );
 
  133      sign = value < 0 ? -1 : 1;
 
  134      double g = std::fabs( value );
 
  135      unsigned long long a = 0;
 
  136      unsigned long long b = 1;
 
  137      unsigned long long c = 1;
 
  138      unsigned long long d = 0;
 
  139      unsigned long long s;
 
  140      unsigned int iteration = 0;
 
  144        numerator = a + s * 
c;
 
  145        denominator = b + s * d;
 
  151        if ( 
qgsDoubleNear( 
static_cast< double >( sign )*
static_cast< double >( numerator ) / denominator, value, tolerance ) )
 
  156      while ( iteration++ < 100 ); 
 
 
  164    static QString toUnicodeSuperscript( 
const QString &input );
 
  170    static QString toUnicodeSubscript( 
const QString &input );
 
  177    virtual void setConfiguration( 
const QVariantMap &configuration, 
const QgsReadWriteContext &context );
 
  181    bool mUseDedicatedUnicode = 
false;
 
  182    bool mUseUnicodeSuperSubscript = 
true;
 
  183    bool mShowThousandsSeparator = 
true;
 
  184    bool mShowPlusSign = 
false;
 
  185    QChar mThousandsSeparator;
 
 
A context for numeric formats.
 
The class is used as a container of context for various read/write operations on other objects.
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
 
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)