Неправильное округление запроса мощности, неправильное округление вверх или вниз - PullRequest
1 голос
/ 02 апреля 2019

У меня есть два пользовательских столбца в конце запроса с именами «Всего» и «GST», столбцы «Всего» столбцов сумм «Хранилище», «PltHire», «Администратор», «InActivity», «OutActivity»,«Добавить активность», «Грузоперевозки», «Упаковка» и «Прочее».В то время как столбец «GST» составляет 10% от столбца «Всего», я использовал функцию округления в запросе мощности и установил для нее 2 десятичных знака, и по какой-то причине столбец «GST» не округляется правильно.Если вы посмотрите на изображение, оно показывает, что выделенная строка имеет 154,25 долл. США, а мощность запроса округлена до 15,42 долл. США, то на самом деле она должна округляться до 15,43 долл. США.Я не уверен, сделал ли я что-нибудь, что мне нужно, заранее, поэтому, если кто-то может мне помочь, это было бы здорово, и если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Примечание - то, что я нашел странным, былочто, когда я создал другой настраиваемый столбец для столбца итогов, в который было добавлено итоговое значение и значение gst ([итого] * 1,1 вместо [итого] * 0,1), этот столбец мог правильно округляться?

Спасибо!

Я пытался изменить код М, используя следующее, но безрезультатно.

  1. Number.Round (значение в качестве обнуляемого числа, цифры в качестве обнуляемого числа, округление в виде обнуляемого числа) как обнуляемоеномер enter image description here

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Нет единого мнения о округлении 0,5. Фактически, округление до четного (Power Query по умолчанию) менее смещено, чем округление в большую сторону. К счастью, функция Power Query Number.Round позволяет использовать различные стили округления в качестве необязательного третьего аргумента.

Вы, вероятно, хотите Number.Round([Custom],2,0) или, что эквивалентно, Number.Round([Custom],2,RoundingMode.Up), но у вас также есть следующие опции:

  • RoundingMode.Down (или 1)
  • RoundingMode.AwayFromZero (или 2)
  • RoundingMode.TowardsZero (или 3)
  • RoundingMode.ToEven (или 4) [ по умолчанию ]
0 голосов
/ 08 апреля 2019

Кен Пульс обсуждал это еще в сентябре 2014 года:

Я не думаю, что это было исправлено, поэтому статья Кена все еще действительна.

Вы захотите использоватьRoundingMode.AwayFromZero, если вы хотите соответствовать тому, как Exel обрабатывает округление:

=Number.Round([Value],2,RoundingMode.AwayFromZero)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...