2010-04-01 3 views
4

В докладе у меня есть следующий код для поля:Как я могу округлить десятичные значения до ближайшего целочисленного значения?

=Sum([PartQty]*[ModuleQty]) 

Пример результаты 2.1 и 2.6. Мне нужно, чтобы эти значения округлились до значения 3. Как я могу изменить свой код поля, чтобы всегда округлять результаты моего текущего выражения?

+0

Жаль Сэм. Не использовал этот сайт долго, как вы голосовываете и принимаете ответы, вы первый раз, чтобы упомянуть об этом. Вы были очень полезны. Shaun – Shaun

+1

без проблем :). для голосования нажмите на стрелки выше или ниже номера в верхнем левом углу ответов. нажмите стрелку вверх, чтобы проголосовать за то, что ответ полезен, стрелка вниз, если это не так. оставьте комментарий, если вы понижаете голос, чтобы сказать, почему. Нажмите на значок галочки рядом с ответом, который вы принимаете как ответ на свой вопрос. он станет зеленым, чтобы показать, что это принятое решение. –

ответ

1

вы могли бы сделать

=Int(Sum([PartQty]*[ModuleQty]))+1 

я думаю. Это получит внутреннюю часть суммы (2), а затем добавит 1. вам может потребоваться немного умнее, так как это, вероятно, даст вам 3, даже если сумма равна ровно 2, что, вероятно, не то, что вы хотите.

не проверял, но что-то вдоль этих линий может работать (синтаксис доступа не так велик, но должен дать вам правильное представление):

Iif(Sum([PartQty]*[ModuleQty])-Int(Sum([PartQty]*[ModuleQty]))=0, 
    Sum([PartQty]*[ModuleQty]), 
    Int(Sum([PartQty]*[ModuleQty]))+1) 
+0

Привет Сэм. Вы правы в своей первой идее, если значение равно 2, оно будет округлено до 3. Попробуй следующую идею в ближайшее время. Cheers – Shaun

+0

Привет Сэм. Я пробовал новый код, я продолжаю получать сообщение об ошибке в отношении запятой. Шон. – Shaun

+0

Привет Сэм я заменил первую запятую Тогда и второй запятой с = еще не работает получать ошибки – Shaun

4

Это старый трюк доступа я узнал очень много времени назад, и он использует способ, которым Access обрабатывает дробные, отрицательные числа. Попробуйте это:

-Int(-[DecimalValue]) 

Это странно, но это всегда будет округлить свои номера до ближайшего целого числа.

+0

Очень интересно – Fionnuala

+0

Да, согласен. Я не уверен, что это ошибка, но она работает годами, и фактически я использовал ее только на днях в Access 2010. Таким образом, она по-прежнему полезна.Кроме того, довольно краткий и до тех пор, пока вы понимаете цель синтаксиса, это самый простой способ выразить, что вы хотите «округлить» число. – RLH

+0

Я уверен, что это не ошибка, она округляется, не так ли, в каждом случае? '-1.4 = -2',' 1.4 = 1' – Fionnuala

Смежные вопросы