There is a plenty diversity in information units through the code, command-line options, GUI and logs. Here are some examples:

`-dbcache`
**megabytes** in CL and GUI _vs_ **MiB** in logs and code (constants in [txdb.h](https://github.com/bitcoin/bitcoin/blob/master/src/txdb.h))

`-prune`
**MiB** in CL _vs_ **GB** in GUI. Also, setting prune = 1 GB in GUI gives _incorrect_ prune target = 1000 MiB.

Which prefix type -- binary (a power of 2) or SI (a power of 10) -- is preferable in the Bitcoin Core project?
QDialog(parent),
    ui(new Ui::OptionsDialog),
    model(0),
    mapper(0)
{
    ui->setupUi(this);
    
    ui->databaseCache->setMinimum(nMinDbCache);
    ui->databaseCache->setMaximum(nMaxDbCache);
    static const uint64_t GiB = 1024 * 1024 * 1024;
    static const uint64_t nMinDiskSpace = MIN_DISK_SPACE_FOR_BLOCK_FILES / GiB +
                          (MIN_DISK_SPACE_FOR_BLOCK_FILES % GiB) ? 1 : 0;
    ui->pruneSize->setMinimum(nMinDiskSpace);
    ui->threadsScriptVerif->setMinimum(-GetNumCores());
    ui->threadsScriptVerif->setMaximum(MAX_SCRIPTCHECK_THREADS);
    ui->pruneWarning->setVisible(false);
    ui->pruneWarning->setStyleSheet("QLabel { color: red; }");
    ui->pruneSize->setEnabled(false);
    connect(ui->prune, &QPushButton::toggled, ui->pruneSize, &QWidget::setEnabled);
    
#ifndef USE_UPNP
    ui->mapPortUpnp->setEnabled(false);
#endif
    ui->proxyIp->setEnabled(false);
    ui->proxyPort->setEnabled(false);
    ui->proxyPort->setValidator(new QIntValidator(1, 65535, this));
    ui->proxyIpTor->setEnabled(false);
    ui->proxyPortTor->setEnabled(false);
    ui->proxyPortTor->setValidator(new QIntValidator(1, 65535, this));
    connect(ui->connectSocks, &QPushButton::toggled, ui->proxyIp, &QWidget::setEnabled);