Hoihoi
Ik heb een loopje dat een aantal percentages bij elkaar op telt, en dit hoort op 100% uit te komen (het gaat om aandelen van een totaal).
Nu krijg ik hier standaard 1.0E2 uit, wat ik niet wil.
Als ik daarop ga googlen vind ik:
Bijna aan het einde van deze pagina:
http://docs.python.org/library/decimal.html
Prima de bima, maar het werkt niet:
Het gaat hier om deze code:
De nauwkeurigheid is niet relevant: aan het eind van het verhaal komt er 100% uit. Als dat niet het geval (of dat nou 96.93333% of 5% is, boeit echt niet) dan is er iets fout.
Hoe kan ik dit het beste oplossen? Het is mij niet helemaal duidelijk waarom deze functie uit de manual niet werkt.
Ik heb een loopje dat een aantal percentages bij elkaar op telt, en dit hoort op 100% uit te komen (het gaat om aandelen van een totaal).
Nu krijg ik hier standaard 1.0E2 uit, wat ik niet wil.
Als ik daarop ga googlen vind ik:
code:
1
2
| def remove_exponent(self,d): return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize() |
Bijna aan het einde van deze pagina:
http://docs.python.org/library/decimal.html
Prima de bima, maar het werkt niet:
code:
1
| ⇝ InvalidOperation: quantize result has too many digits for current context |
Het gaat hier om deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| for name in providerNames: name = providerNames[counter][0] length = models.Session.query(func.sum(Line.Length)).filter_by(LineDiscarded='0').filter_by(ProviderName=name).first()[0] if length == None: length=0 else: length/=1000 length_pct = (Decimal(100)* Decimal(length)) / Decimal(c.length_no_discarded) providerStats.append((name,length,length_pct)) counter=counter+1 total_length+=length total_pct+=length_pct total_pct = self.remove_exponent(total_pct) |
De nauwkeurigheid is niet relevant: aan het eind van het verhaal komt er 100% uit. Als dat niet het geval (of dat nou 96.93333% of 5% is, boeit echt niet) dan is er iets fout.
Hoe kan ik dit het beste oplossen? Het is mij niet helemaal duidelijk waarom deze functie uit de manual niet werkt.
Ik heb elektra-inbouwmaterialen over? Kopen? Zie: hier