docs: public void saveGlobalProperties() throws IOException {
          File propFile = new File(getGlobalPropertiesFile());
          if (propFile.createNewFile() || propFile.isFile()) {
              java.util.Properties prop = new java.util.Properties();
  
              if (getRoundingMode() != null)
                  prop.put("roundingMode", getRoundingMode().name());
              if (getScale() != null)
                  prop.put("scale", getScale());
  
              prop.put("stripTrailingZeros", Boolean.toString(hasStripTrailingZeros()));
  
              prop.put("decimalSeparator.in", "'" + getInputDecimalSeparator() + "'");
  
              prop.put("decimalSeparator.out", "'" + getOutputDecimalSeparator() + "'");
  
              if (getGroupingSeparator() != null)
                  prop.put("groupingSeparator", getGroupingSeparator());
  
              if (getOutputFormat() != null)
                  prop.put("outputFormat", getOutputFormat());
  
              //
              // Global NumConverter
              //
              HashMap<Class, NumConverter> cncs = CacheExtension.getAllNumConverter();
              int count = 0;
              for (Entry<Class, NumConverter> cnc : cncs.entrySet()) {
                  prop.put("numconverter[" + count++ + "]", cnc.getKey().getName() + " > " + cnc.getValue().getClass().getName());
              }
              
              //
              // Global Operator
              //
              HashMap<Class<? extends Operator>, Operator> cops = CacheExtension.getOperators();
              count = 0;
              for (Entry<Class<? extends Operator>, Operator> cop : cops.entrySet()) {
                  prop.put("operator[" + count++ + "]", cop.getKey().getName());
              }
  
              //
              // Global Function
              //
              HashMap<Class<? extends Function>, Function> cfns = CacheExtension.getFunctions();
              count = 0;
              for (Entry<Class<? extends Function>, Function> cfn : cfns.entrySet()) {
                  prop.put("function[" + count++ + "]", cfn.getKey().getName());
              }
              
              FileOutputStream fos = new FileOutputStream(propFile);
              prop.store(fos, "Global properties for jCalc");
  
              fos.close();
              fos.flush();
          }
      }