У меня есть три набора чисел, измерение (которое находится в диапазоне 0-1 включительно), две ошибки (положительная и отрицательная. Эти числа должны отображаться последовательно с количеством значащих цифр, округленных в большую сторону, что соответствует первая ненулевая запись в любом из номеров.
Это требование пропускается при измерении, если оно одно (т. Е. Необходимо учитывать только цифры в ошибках). Например:
0.95637 (+0.00123, -0.02935) --> 0.96 +0.00 -0.03
1.00000 (+0.0, -0.0979) --> 1.0 +0.0 -0.1 (note had to truncate due to -ve error rounding up at first significant digit)
Теперь, получить первую ненулевую цифру легко, взяв log10 (num), но я испытываю идиотский момент, пытаясь заставить работать раздевание и округление без ошибок.
Все типы данных являются двойными, а язык выбора - C ++. Все и любые идеи приветствуются!