Advertisement
AlexNovoross87

QString::number()

Jun 22nd, 2025 (edited)
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.01 KB | None | 0 0
  1. QString::number() - это статический метод класса QString в Qt, который преобразует число (целое или с плавающей точкой) в строковое представление. Этот метод перегружен для различных числовых типов и предоставляет различные параметры форматирования.
  2.  
  3. Основные варианты использования и их параметры:
  4.  
  5. 1. Преобразование целых чисел:
  6.  
  7. QString QString::number(int n, int base = 10)
  8.  
  9. QString QString::number(long n, int base = 10)
  10.  
  11. QString QString::number(long long n, int base = 10)
  12.  
  13. QString QString::number(uint n, int base = 10)
  14.  
  15. QString QString::number(ulong n, int base = 10)
  16.  
  17. QString QString::number(ulong long n, int base = 10)
  18.  
  19. n: Число, которое нужно преобразовать.
  20. base: (необязательный параметр, по умолчанию 10) Основание системы счисления. Может быть 2 (двоичная), 8 (восьмеричная), 10 (десятичная) или 16 (шестнадцатеричная). Если base равно 16, используются символы 0-9 и a-f для представления цифр.
  21. Примеры:
  22.  
  23. int num = 123;
  24. QString str = QString::number(num); // str == "123" (в десятичной системе)
  25.  
  26. long long bigNum = 9876543210LL;
  27. QString strBig = QString::number(bigNum); // strBig == "9876543210"
  28.  
  29. int hexNum = 255;
  30. QString hexStr = QString::number(hexNum, 16); // hexStr == "ff" (в шестнадцатеричной системе)
  31.  
  32. int binNum = 5;
  33. QString binStr = QString::number(binNum, 2); // binStr == "101" (в двоичной системе)
  34. 2. Преобразование чисел с плавающей точкой:
  35.  
  36. QString QString::number(double n, char format = 'g', int precision = 6)
  37.  
  38. QString QString::number(float n, char format = 'g', int precision = 6)
  39.  
  40. n: Число, которое нужно преобразовать.
  41.  
  42. format: (необязательный параметр, по умолчанию 'g') Символ, указывающий формат представления числа. Основные значения:
  43.  
  44. 'e': Научная нотация (например, 1.23456e+02).
  45. 'E': Научная нотация с большой буквой E (например, 1.23456E+02).
  46. 'f': Фиксированная нотация (например, 123.456).
  47. 'g': Общий формат. Использует фиксированную нотацию, если это уместно, иначе научную. Алгоритм выбирает наиболее компактное представление.
  48. 'G': Общий формат с большой буквой E в научной нотации.
  49. precision: (необязательный параметр, по умолчанию 6) Количество значащих цифр (для 'g' и 'G') или количество цифр после десятичной точки (для 'e', 'E' и 'f').
  50.  
  51. Примеры:
  52.  
  53. double pi = 3.14159265359;
  54. QString strPi = QString::number(pi); // strPi == "3.14159" (по умолчанию 'g' и 6 знаков)
  55.  
  56. QString strPiFixed = QString::number(pi, 'f', 3); // strPiFixed == "3.142" (фиксированная нотация, 3 знака после точки)
  57.  
  58. double largeNum = 1234567.89;
  59. QString strLarge = QString::number(largeNum); // strLarge == "1.23457e+06" ('g' автоматически выбирает научную нотацию)
  60.  
  61. QString strLargeFixed = QString::number(largeNum, 'f', 2); // strLargeFixed == "1234567.89"
  62.  
  63. double smallNum = 0.000012345;
  64. QString strSmall = QString::number(smallNum); // strSmall == "1.2345e-05"
  65.  
  66. QString strSmallFixed = QString::number(smallNum, 'f', 8); // strSmallFixed == "0.00001235"
  67. Ключевые моменты:
  68.  
  69. QString::number() всегда возвращает новый объект QString.
  70. Этот метод не изменяет исходное число.
  71. По умолчанию (без указания format и precision), используется формат 'g' с точностью 6, что часто является наиболее подходящим вариантом.
  72. Правильный выбор format и precision важен для получения желаемого строкового представления числа.
  73. Учитывайте локализацию при форматировании чисел для отображения пользователю (например, использование запятой вместо точки в качестве десятичного разделителя). Qt предоставляет классы QLocale и QFormatString для локализованного форматирования.
  74. Пример с локализацией:
  75.  
  76. #include <QLocale>
  77.  
  78. double value = 1234.567;
  79.  
  80. // Получаем локаль пользователя
  81. QLocale locale;
  82.  
  83. // Форматируем число с использованием локали
  84. QString formattedNumber = locale.toString(value, 'f', 2);
  85.  
  86. qDebug() << formattedNumber; // Вывод зависит от локали (например, "1 234,57" для русской локали)
  87. В заключение, QString::number() - это мощный и удобный инструмент для преобразования чисел в строки в Qt. Правильное использование параметров format и precision позволяет получить строковое представление числа в нужном формате. Не забывайте о локализации, если необходимо отображать числа пользователю в соответствии с его региональными настройками.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement