Jump to content
Korean Random

Некорректный вывод числа в ячейке карусели в 0.9.16


0kosmo

Recommended Posts

В экстраполе ячейки карусели выводится процент побед с двумя знаками после запятой

{ "enabled": true, "x": 22, "y": 17, "format": "<font face='$FieldFont' size='12' color='{{v.c_winrate|#CFCFCF}}'>{{v.winrate%4.02f~%| }}</font>", "shadow": ${ "default/carouselNormal.xc":"def.textFieldShadow" } },

До 0.9.16 было без проблем, сейчас на танке с 199 побед из 385 боев выводит 51,6899999999999999%

 

Link to comment
Short link
Share on other sites

Да, в новой версии xvm оно сломалось:

 

{{v.winrate%3.02f}}%

 

44.68999999999999999%

в xvm вроде ничего не ломалось...

может такой релиз запилила картоха, на тестовых клиентах, что на первом , что на втором, всё нормально было

как временное решение вместо 2, поставьте 1

{{v.winrate%3.01f}}%

Edited by tricsi
Link to comment
Short link
Share on other sites

в xvm вроде ничего не ломалось... может такой релиз запилила картоха, на тестовых клиентах, что на первом , что на втором, всё нормально было

картоха при чем, когда речь о форматировании макроса xvm? написано 2- должно округляться до двух цифр.

кстати, что за ноль после точки? по идее должно быть {{v.winrate%3.2f}}%

Edited by demon2597
Link to comment
Short link
Share on other sites

кстати, что за ноль после точки? по идее должно быть {{v.winrate%3.2f}}%

Скорее всего как и у меня - на основании файла readme-ru.txt в котором приведен пример форматирования

 

{{kb%4.01f~k|----}}   - ширина 4 символа, обязательно 1 символ после запятой, выравнивание вправо

                                если kb==null, будет отображаться "----"

Link to comment
Short link
Share on other sites

картоха при чем, когда речь о форматировании макроса xvm? написано 2- должно округляться до двух цифр.

а получается всё при том же..

рассказываю

СТ1 и СТ2...последний запуск теста, вечер перед релизом, всё нормально при такой записи

"format": "<font color='{{v.c_winrate}}' size='14'><b>{{v.winrate%.02f}}%<b></font>", "alpha": "{{v.winrate?100|0}}" },

как и положено хх,хх... округляется до двух

первый же запуск релиза клиента и получаем

post-18605-0-04169500-1475655618_thumb.jpg

проверяем дальше...установлен билд  nb 6536 ( ночник СТ2 ещё до всех фиксов и тд..)

получаем

post-18605-0-77925400-1475656123_thumb.jpg

какой косяк, либо косяки в клиенте, я не знаю, но макросы вроде не изменились и не менялись..

поэтому и оставил одну десятку

такие дела

пысы

Дим, и как ты заметил на скрине, у меня выборочно не форматирует..знать бы какой файл клиента за это отвечает, я бы от тестового подсунул..для проверки

Edited by tricsi
Link to comment
Short link
Share on other sites

на основании файла readme-ru.txt в котором приведен пример форматирования   {{kb%4.01f~k|----}}   - ширина 4 символа, обязательно 1 символ после запятой, выравнивание вправо                                 если kb==null, будет отображаться "----"

это не совсем корректный пример, если немного подумать головой. в той же доке в расшифровке значений формата написано, что prec - количество знаков после запятой для дробных чисел. у тебя какое количество знаков? 2? ну вот и надо писать 2, а не 02. фактически может ни на что и не влияет, не знаю, но будет правильнее. в конце концов 0002- это ведь тоже два, почему бы тогда так не писать:)

 

@tricsi, это всё понятно, но картоха все-таки тут не виновата, даже если у них что-то поменялось, что мешает нормально работать форматированию макроса xvm, то это не их проблема, а проблема xvm, это ведь xvm надо адаптировать под картоху, а не наоборот:) поэтому

в xvm вроде ничего не ломалось...

сломалось-то как раз в xvm, даже если там ничего не менялось, но раз перестало адекватно работать с картохиными изменениями- это и есть сломалось

 

Дим, и как ты заметил на скрине, у меня выборочно не форматирует..знать бы какой файл клиента за это отвечает, я бы от тестового подсунул..для проверки

на всех скринах, что встречались вижу только, что не округляет когда дробная часть имеет период, а больше х.з., надо чтобы Макс смотрел

 

поэтому и оставил одну десятку

а один знак у тебя как раз не зацепляет период, поэтому округление срабатывает

Edited by demon2597
  • Upvote 2
Link to comment
Short link
Share on other sites

это не совсем корректный пример, если немного подумать головой. в той же доке в расшифровке значений формата написано, что prec - количество знаков после запятой для дробных чисел. у тебя какое количество знаков? 2? ну вот и надо писать 2, а не 02. фактически может ни на что и не влияет, не знаю, но будет правильнее. в конце концов 0002- это ведь тоже два, почему бы тогда так не писать:)

 

Ну уж какой пример был тот и использовался. Плюс многим известное: работает - не трогай.

Link to comment
Short link
Share on other sites

 

Дим, про знаки...не трогал и не лазил со времён "царя гороха"...работает и работает.

а вот что вдруг, проработав более двух лет, в том числе и на тесте 9.16...на релизе оного, перестало,  да ещё так выборочно...всем форматирует, а американца Т32 не может (только он такой), наводит на смутные подозрения..

Link to comment
Short link
Share on other sites

Дим, про знаки...не трогал и не лазил со времён "царя гороха"...работает и работает.

а вот что вдруг, проработав более двух лет, в том числе и на тесте 9.16...на релизе оного, перестало,  да ещё так выборочно...всем форматирует, а американца Т32 не может (только он такой), наводит на смутные подозрения..

Всё же Демон прав,у меня тоже не работает когда получается в периоде.

Тут не Т32 виноват, уж точно.

Link to comment
Short link
Share on other sites

 

 

кстати, что за ноль после точки? по идее должно быть {{v.winrate%3.2f}}%
 

 

Заполнение нулями. Например, не 42.5% а 42.05%.   Это стандартная фича ещё из сишных библиотек (собственно, printf на который ссылается readme).

  • Downvote 1
Link to comment
Short link
Share on other sites

картоха при чем, когда речь о форматировании макроса xvm? написано 2- должно округляться до двух цифр.

кстати, что за ноль после точки? по идее должно быть {{v.winrate%3.2f}}%

02 означает, что дробная часть обязательно, без 0 целые числа будут без дробной части отображаться, так что с форматом тут все правильно.

Да, в новой версии xvm оно сломалось:

{{v.winrate%3.02f}}%

44.68999999999999999%

Это на всех танках, или только на некоторых? А то у меня вроде все нормально, может просто нет таких.

 Воспроизвел

Link to comment
Short link
Share on other sites

 

 

Это на всех танках, или только на некоторых? А то у меня вроде все нормально, может просто нет таких.

 

На T57 Heavy Tank. Но у меня танков крайне мало, и на тех что есть видимо результат не в периоде.

Link to comment
Short link
Share on other sites

Исправил.


не в периоде

"в периоде" - это не правильное определение в данном случае, тут стандартная проблема чисел с плавающей запятой из-за ограничения разрядности мантиссы. Возможно, до этого релиза float представлялся в виде double, и мантиссы хватало, а теперь переделали на честный четырехбайтовый float, и ее стало не хватать. Хотя может и другая причина, не хочу глубоко копать. По идее float должно хватать - у него в мантиссе хранится более 7 знаков.

Edited by sirmax
  • Upvote 1
Link to comment
Short link
Share on other sites

 

 

02 означает, что дробная часть обязательно, без 0 целые числа будут без дробной части отображаться
ага, теперь понятно, спасибо
Link to comment
Short link
Share on other sites

Исправил.

.. По идее float должно хватать - у него в мантиссе хранится более 7 знаков.

спасибо

у меня исправилось

nb 6575

Link to comment
Short link
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...