У меня есть три набора чисел, измерение (которое находится в диапазоне 0-1 включительно) две ошибки (положительные и отрицательные). Эти числа должны отображаться последовательно с количеством значимых цифры, округленные вверх, что соответствует первой ненулевой записи в любом из чисел.Правильное форматирование чисел с ошибками (C++)
Это требование пропускается при измерении, если оно одно (т.е. необходимо учитывать только цифры в ошибках). :
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++. Все и любые идеи приветствуются!
Есть ли ограничение, что ваша реализация не используют библиотечные вызовы? –
Не совсем понятно. Ehy на первой строке числозначимых цифр равно 2, а на втором - 1? Другими словами, почему в первой строке +0.0форматируется как +0.00, но во второй строке +0.0 форматируется как +0.0? –
Я не совсем понимаю - вы говорите, что хотите отобразить до первой ненулевой цифры, но ваш пример показывает +0.00, а не +0.001. –