Мне нужно получить точное входное значение двойного спин-бокса. Я установил 8 десятичных цифр для своего Spinbox. Когда я набираю 0,6000000, в отладке я получаю 0,59999999999998, как на картинке (иногда это 0,6000000000002).
Я попытался преобразовать это значение в 0,60000000, используя QString::number
, и снова преобразовать его в двойное число. Я снова получаю старое значение (0,59999999999998).
Но когда я распечатываю эти значения, я печатаю 0,60000000.
Потому что после этого у меня есть расчет, поэтому мне нужно точное входное значение, иначе мой расчет будет неправильным. В этом случае я должен стать точным 0,60000000). Как я могу это сделать?
QString valueAsText = locale().toString( p_value, 'f', decimals() );
. Я получилvalueAsText
точно так, как я набрал. Из этого я могу получить целую часть и десятичную часть (используя строку), а затем снова преобразовать вint
. и это работает :) - person songvan   schedule 09.04.2019