Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2023 11:05:33

tamazav
Зарегистрирован: 2023-01-17
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

qrcode

xam1816
покажи строку
ST00012|Name=ООО “Вася”|PersonalAcc=40702810230000012345|BankName= ПАО СБЕРБАНК|BIC=040812345|CorrespAcc=30101810100000000123|PayeeINN=1234567891|LastName='+str(self.wsh_otkuda_sch.cell(row=i, column=4).value)+'|Purpose= Оплата по договору № ‘ + ’{:06}'.format(int(self.wsh_otkuda_sch.cell(row=i, column=2).value))+' ‘+ str(self.wsh_otkuda_sch.cell(row=i, column=4).value)+’|Sum=' + str(self.raschet*100)
где self.raschet - float, получаемый сложением нескольких данных

Офлайн

#2 Янв. 17, 2023 11:14:04

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

qrcode

tamazav
где self.raschet - float, получаемый сложением нескольких данных
вопрос, а сумма обязательно в рублях делать, или можно ее передавать в копейках?. Т.е передать целым числом но выраженную в копейках?

Отредактировано xam1816 (Янв. 17, 2023 11:14:14)

Офлайн

#3 Янв. 17, 2023 11:24:33

tamazav
Зарегистрирован: 2023-01-17
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

qrcode

xam1816
вопрос, а сумма обязательно в рублях делать, или можно ее передавать в копейках?. Т.е передать целым числом но выраженную в копейках?
Расчет делается из имеющихся данных в рублях. Полученный результат передаю для формирования qr-кода с умножением на 100 для получения копеек.
Для qr-кода передаются данные в копейках, поэтому рубли умножаю на 100

Офлайн

#4 Янв. 17, 2023 11:43:23

tamazav
Зарегистрирован: 2023-01-17
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

qrcode

tamazav
xam1816
Наконец-то, я дурачок понял что ты спрашивал. Я его победил.
Сумма получалось множеством расчетов. Перевел несколько раз в требуемый формат (float умножил на 100, полученный результат в int, чтобы 0 убрать в конце, а int в str и подставил в строку для qr-кода.
Может есть вариант попроще, но задача решена.
Огромное спасибо всем за помощь и особая благодарность xam1816 за то, что навел на мысль

Офлайн

#5 Янв. 17, 2023 21:33:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

qrcode

tamazav
Сумма получалось множеством расчетов. Перевел несколько раз в требуемый формат (float умножил на 100, полученный результат в int, чтобы 0 убрать в конце, а int в str и подставил в строку для qr-кода.
Там ещё бывает округление по десятым долям копеек. Так что ты разберись с этим, а то будешь потом неправильно вычислять суммы в некоторых случаях и даже знать об этом не будешь.

Чтобы округлить копейки по десятым долям, умножай на 1000, округляй, отбрасывай дробную часть, потом дели на тысячу обратно.
  
>>> f = 123.5789
>>> 
>>> f
123.5789
>>> 
>>> newf = int(round(f * 1000)) / 1000
>>> 
>>> newf
123.579
>>>

tamazav
xam1816
покажи строку
ST00012 …
Строку создавай без плюсов (конкатенации), только через .format(). Значения, которые подаёшь в .format(), вычисляй заранее, раскладывай по переменным. Не надо экономить строки. Это не делает код умнее, это делает код только запутаннее, и в запутанном коде потом сложно увидеть ошибку какую-то тупую вроде этой.



Отредактировано py.user.next (Янв. 17, 2023 21:34:56)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version