diff --git a/tools/cabana/dbc/dbc.h b/tools/cabana/dbc/dbc.h index 7daa258ecd..c88834876b 100644 --- a/tools/cabana/dbc/dbc.h +++ b/tools/cabana/dbc/dbc.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -85,3 +86,5 @@ int bigEndianBitIndex(int index); void updateSigSizeParamsFromRange(cabana::Signal &s, int start_bit, int size); std::pair getSignalRange(const cabana::Signal *s); inline std::vector allDBCNames() { return get_dbc_names(); } +inline QString doubleToString(double value) { return QString::number(value, 'g', std::numeric_limits::digits10); } + diff --git a/tools/cabana/dbc/dbcfile.cc b/tools/cabana/dbc/dbcfile.cc index fd20c0af19..49579bc7fa 100644 --- a/tools/cabana/dbc/dbcfile.cc +++ b/tools/cabana/dbc/dbcfile.cc @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -257,8 +256,8 @@ QString DBCFile::generateDBC() { .arg(sig->size) .arg(sig->is_little_endian ? '1' : '0') .arg(sig->is_signed ? '-' : '+') - .arg(sig->factor, 0, 'g', std::numeric_limits::digits10) - .arg(sig->offset, 0, 'g', std::numeric_limits::digits10) + .arg(doubleToString(sig->factor)) + .arg(doubleToString(sig->offset)) .arg(sig->min) .arg(sig->max) .arg(sig->unit); diff --git a/tools/cabana/signalview.cc b/tools/cabana/signalview.cc index 124f9f6b9a..cf72b34ccf 100644 --- a/tools/cabana/signalview.cc +++ b/tools/cabana/signalview.cc @@ -124,8 +124,8 @@ QVariant SignalModel::data(const QModelIndex &index, int role) const { case Item::Sig: return item->sig_val; case Item::Name: return item->sig->name; case Item::Size: return item->sig->size; - case Item::Offset: return QString::number(item->sig->offset, 'f', 6); - case Item::Factor: return QString::number(item->sig->factor, 'f', 6); + case Item::Offset: return doubleToString(item->sig->offset); + case Item::Factor: return doubleToString(item->sig->factor); case Item::Unit: return item->sig->unit; case Item::Comment: return item->sig->comment; case Item::Min: return item->sig->min;