Форум сайта python.su
xam1816ST00012|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)
покажи строку
Офлайн
tamazavвопрос, а сумма обязательно в рублях делать, или можно ее передавать в копейках?. Т.е передать целым числом но выраженную в копейках?
где self.raschet - float, получаемый сложением нескольких данных
Отредактировано xam1816 (Янв. 17, 2023 11:14:14)
Офлайн
xam1816Расчет делается из имеющихся данных в рублях. Полученный результат передаю для формирования qr-кода с умножением на 100 для получения копеек.
вопрос, а сумма обязательно в рублях делать, или можно ее передавать в копейках?. Т.е передать целым числом но выраженную в копейках?
Офлайн
tamazavНаконец-то, я дурачок понял что ты спрашивал. Я его победил.
xam1816
Офлайн
tamazavТам ещё бывает округление по десятым долям копеек. Так что ты разберись с этим, а то будешь потом неправильно вычислять суммы в некоторых случаях и даже знать об этом не будешь.
Сумма получалось множеством расчетов. Перевел несколько раз в требуемый формат (float умножил на 100, полученный результат в int, чтобы 0 убрать в конце, а int в str и подставил в строку для qr-кода.
>>> f = 123.5789 >>> >>> f 123.5789 >>> >>> newf = int(round(f * 1000)) / 1000 >>> >>> newf 123.579 >>>
tamazavСтроку создавай без плюсов (конкатенации), только через .format(). Значения, которые подаёшь в .format(), вычисляй заранее, раскладывай по переменным. Не надо экономить строки. Это не делает код умнее, это делает код только запутаннее, и в запутанном коде потом сложно увидеть ошибку какую-то тупую вроде этой.xam1816ST00012 …
покажи строку
Отредактировано py.user.next (Янв. 17, 2023 21:34:56)
Офлайн