Как сделать чтобы access не округлял числа
Добавил пользователь Валентин П. Обновлено: 19.09.2024
Вас может удивить то, что Access округляет число 21.985 до 21.98. Если вас учили округлять до большего числа, числа заканчивающиеся цифрой 5, то вы считаете, что результат должен быть 21.99. Этот способ называют арифметическим округлением. Программа Access не применяет арифметическое округление — она выбирает банковское округление, которое лучше в некоторых случаях.
Разница между арифметическим и банковским округлением заключается в трактовке цифры 5. Поскольку число 21.985 находится точно в середине, между числами 21.98 и 21.99, не просто решить, что с ним делать. При постоянном округлении числа с 5 на конце до большего числа вносится систематическое отклонение в итоги и средние значения. Поскольку вы округляете до большего чаще, чем до меньшего, любые итоги или среднее, которые вы вычисляете, получаются чуть больше, чем следовало бы.
Банковское округление решает эту проблему округлением 5 в одних случаях до большего числа, а в других до меньшего, в зависимости от соседней четной или нечетной цифры.
Число 21.985 округляется до меньшего числа 21.98, а число 21.995 — до большего, 22. Это не единственный способ борьбы с систематическим отклонением (можно решать случайным образом, когда округлять, а когда нет), но это общепринятая практика в бухгалтерских расчетах и статистике.
Вложенные функции
В вычисляемом поле или условии отбора можно применять несколько функций. Этот прием известен как вложенные функции: специальный термин, обозначающий вставку одной функции внутрь другой. Например, в программе Access есть встроенная функция определения абсолютного значения числа Abs ( ), преобразующая отрицательные числа в положительные (и оставляющая положительные числа без изменения). Далее приведен пример деления одного поля на другое и получения в результате заведомо положительного значения:
Speed: Abs ([DistanceTravelled] / [TimeTaken])
Если полученный результат нужно округлить, можно поместить целиком все выражение внутрь скобок функции Round ( ):
Speed: Round (Abs([DistanceTravelled] / [TimeTaken]), 2)
Вычисляя выражение с вложенными функциями, программа Access сначала вычисляет результат самой внутренней функции. В данном примере, прежде всего, определяется абсолютное значение, а затем результат округляется. В приведенном далее примере порядок вычислений изменен на обратный без изменения результата:
Speed: Abs(Round([DistanceTravelled] / [TimeTaken], 2) )
Во многих случаях порядок вложения функций имеет значение, и разный порядок приводит к различным результатам.
Вложенные функции быстро превращают выражение в потенциально опасное. Даже в сравнительно простом примере вычисления скорости трудно предсказать результат без пошагового вычисления выражения. Одна не на месте стоящая или пропущенная скобка может привести к сбою вычисления. Если вы применяете вложенные функции, не пишите сразу выражение целиком — включайте функции в выражение поочередно и после вставки очередной функции выполняйте вычисление.
Построитель выражений
Функции — замечательное нововведение, но в программе Access может оказаться слишком много замечательных вещей. Программа предлагает перечень из десятков различных функций, связанных с решением разнообразных задач, некоторые из этих функций предназначены для выполнения специализированных математических и статистических вычислений.
Для быстрого поиска нужных вам функций Access предлагает компонент, именуемый Построителем выражений. Для его запуска выполните следующие действия:
Откройте запрос в Конструкторе.
Щелкните правой кнопкой мыши поле, в которое вы хотите вставить выражение, и выберите команду Построить (Build).
Если вы создаете вычисляемое поле, нужно щелкнуть правой кнопкой мыши в ячейке Поле, Если создается условие отбора, следует щелкнуть правой кнопкой мыши в ячейке Условие отбора.
После выбора командыПостроить на экране появляется окно Построителя выражений, отображающее текущее содержимое поля (рис. 7.3).
Рис. 7.3. Построитель выражений состоит из текстового поля в верхней части окна, в котором можно редактировать выражение, кнопок быстрой вставки знаков обычных операций (таких как +, -, / и *, если почему-либо вы не можете их найти на клавиатуре), и трехпанельного обозревателя в нижней части окна, который поможет найти нужные поля и функции
3. Вставьте или отредактируйте выражение.
У Построителя выражений есть два ускоряющих приема работы, которые вы, может быть, захотите испробовать. Можно вставлять имя без ввода с клавиатуры (рис. 7.4) и можно найти функцию с помощью обзора (рис. 7.5).
Построитель выражений — универсальное средство создания выражений в вычисляемых полях и условиях отбора. Некоторые параметры имеют смысл только в одном из его назначений. Логические операторы, такие как символ равенства (=), And, Or, Not и Like, удобны для задания условий фильтрации (см. разд. "Построение условий отбора" главы 6), но бесполезны в вычисляемых полях.
Рис. 7.4. Для вставки имени поля щелкните дважды кнопкой мыши папку Таблицы в самом левом списке. Затем щелкните мышью вложенную папку, соответствующую нужной вам таблице. И, наконец, дважды щелкните кнопкой мыши имя поля в среднем списке для добавления его в ваше выражение. Этот прием рекомендуется только тем, кто любит щелкать кнопкой мыши
Рис. 7.5. Для поиска функции начните с двойного щелчка кнопкой мыши папки Функции в левом списке. Затем выберите вложенную папку Встроенные функции. (Другие варианты отображают любые пользовательские функции, которые вы добавили в вашу БД с помощью пользовательского кода VBA.) Далее выберите категорию функции в среднем списке. В правом списке показаны все функции в выбранной категории. Вы можете дважды щелкнуть кнопкой мыши функцию для вставки ее в выражение
Когда вы вставляете имена полей в Построителе выражений, они записываются в более длинном формате с обязательным указанием имени таблицы. Вы увидите [Products] ! [Price] вместо просто [Price]. He волнуйтесь — для программы Access это одно и то же.
4. Щелкните мышью кнопку ОК.
Программа Access скопирует ваше новое выражение в ячейку Поле или Условие отбора.
Когда вПостроителе выражений вставляется функция, программа добавляет заполнители (например, и
), на место которых нужно ввести аргументы. Замените этот текст нужными вам значениями.
Рис. 7.6. В справке функции Round () описываются ее назначение и два параметра. Второй параметр — количество знаков в дробной части — заключен в квадратные скобки, что означает необязательное значение. Пропустите его, и программа Access округлит значение до ближайшего целого числа. Слева приведен перечень функций, который позволяет просмотреть любую другую функцию Access и прочесть ее описание
Большинство специалистов Access считают Построитель выражений слишком тяжеловесным, чтобы использовать его в работе. Но несмотря на то, что это не самое эффективное средство написания выражений, построитель предоставляет прекрасный способ знакомства с новыми загадочными функциями, благодаря своей справке для встроенных функций. Если вы нашли функцию, которая кажется многообещающей, но хотите получить дополнительную информацию, выберите ее в списке и щелкните мышью кнопку Справка (Help). Вы будете вознаграждены кратким резюме, объясняющим назначение функции и описывающим ее параметры, которые нужно задать, как показано на рис. 7.6.
Форматирование чисел
Format ( ) — интересная математическая функция, преобразующая числа в текст. Она интересна, потому что создаваемый текст можно отформатировать несколькими способами, управляя, таким образом, представлением чисел.
Для того чтобы понять разницу, вернемся к выражению, использованному ранее для снижения цены:
SalePrice: [Price] * 0.95
Даже если у поля Price не Денежный тип, вычисленные значения в поле SalePrice (продажная цена) выводятся как обычные числа (без знака валюты, разделителя тысяч и т. д.). Вы увидите значение 43.2 вместо желаемого $43.20.
Решить эту проблему можно, применив функцию Format ( ) для задания денежного формата вывода:
SalePrice: Format([Price] / 0.95, "Currency")
Теперь вычисленные значения содержат знак валюты. Более того, поскольку денежные суммы отображаются с двумя знаками после точки, вам не нужно больше применять функцию Round ( ).
Хитрость применения функции Format () состоит в выборе текста, задаваемого в качестве второго аргумента для получения желаемого результата. В табл. 7.2. приведены возможные варианты.
Таблица 7.2. Варианты форматирования
Выводит число с двумя знаками в дробной части, разделителями для тысяч и знаком валюты
Отображает число с двумя десятичными знаками
Выводит на экран число с двумя десятичными знаками и разделителями тысяч
Отображает процентное значение (число, умноженное на 100, и со знаком процента). Выводит две цифры справа от десятичной точки
Отображает число в научной нотации с двумя десятичными знаками
Таблица 7.2 (окончание)
Отображает Нет, если число равно 0, и Да, если число отлично от 0. Можно использовать аналогичные типы формата Истина/Ложь и Вкл/Выкл
Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.
Для Access 2013 мне нужен способ округлить любые дробные числа до следующего целого числа в SQL-запросе.
В вышеприведенном запросе строка с номером 1.25 должна возвращаться как 2 после запроса.
Насколько мне известно, в Access 2013 нет функции ROUNDUP для использования в запросе SQL-запроса.
Чтобы округлить вверх к следующему наибольшему числу, воспользуйтесь способом, которым Int() округляет отрицательные числа вниз, например: - Int (- [MyField])
Как показано выше, Int (-2.1) округляется до -3. Поэтому это выражение округляется от 2,1 до 3.
Чтобы округлить до более высокого значения, умножьте на -100, округлите и разделите на -100: Int (-100 * [MyField]) / -100
Синтаксис противоречит интуиции, но он работает точно так, как я предполагал.
Вот то, что просто и легко понять:
ПРИМЕЧАНИЕ. Не забудьте проверить свои значения за нуль перед вызовом функции! Эта функция будет округлять наименьшую до самой большой десятичной точки до следующего целого целого независимо!
-
Определитесь, для каких ячеек требуется вносить изменения, и если их несколько, выделите все сразу.
Точно по так же функционирует и другая опция, предназначенная для уменьшения разрядности. Она расположена на этой же панели и ей можно воспользоваться, если вдруг вы добавили несколько лишних знаков.
Способ 2: Настройка формата ячеек
Настройка формата ячеек позволяет установить точное количество знаков после запятой, чтобы задать автоматическое округление. Ничего не помешает увеличить их количество до требуемого, отключив тем самым округление. Для этого понадобится обратиться к соответствующему меню в Excel.
- В первую очередь всегда выделяйте те ячейки, для которых будут применены последующие изменения.
Способ 3: Изменение формата ячеек
Завершает статью вариант, подразумевающий изменение формата ячеек с числами, для которых отключается округление. Это единственный доступный метод, который окажется эффективным, если округление происходит по причине недостаточного места в ячейке для всех знаков.
Учитывайте, что если числу задать текстовый формат, не получится рассчитать его сумму при выделении или использовать ячейку в математических формулах. Если же в будущем потребуется снова округлить числа, воспользуйтесь другой инструкцией на нашем сайте, перейдя по ссылке ниже.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
вот так в экселе:
а вот так уже в ворде:
Оценить 2 комментария
Если не поможет - В экселе создать столбец\строку, где данные будут сконвертированы в текст, и уже оттуда мерджить в Word
You may need to turn you numbers into text
Try this formula: =TEXT(A1,"0.00")
Copy and Paste this as value and replace the orginal data (or simply have as a seperate field).
первый вариант находил в интырнете, не помогало. зато второй не видел еще. работает как надо. считаем что второй вариант это прямой ответ мой на вопрос.
теперь в квитанциях за квартиру площадь и сумма к оплате будут по человечьи написаны.
спасибо Вам огромное за помощь!
Читайте также: