eine Basiswährung der GBP £
, und eine Tabelle von anderen Währungen in einem Geschäft akzeptiert Gegeben:Finden Sie die nächste schöne Zahl
Currency Symbol Subunits LastToGBPRate
------------------------------------------------------
US Dollars $ 100 0.592662000
Euros € 100 0.810237000
Japanese Yen ¥ 1 0.005834610
Bitcoin ฿ 100000000 301.200000000
Wir haben eine Arbeitsmethode, die eine bestimmte Menge in GBP Pence (AKA cents)
in Currency X cents
umwandelt. Bei einem Preis von 999 (£ 9,99), für die oben genannten Währungen würde es zurück:
Currency Symbol
---------------------
US Dollars 1686
Euros 1233
Japanese Yen 1755
Bitcoin 3482570
Das ist alles funktioniert absolut in Ordnung. Wir haben dann eine Format Currency
Methode, die sie alle in gut aussehenden Zahlen konvertiert:
Currency Formatted
---------------------
US Dollars $16.86
Euros €12.33
Japanese Yen ¥1755
Bitcoin ฿0.03482570
nun das Problem, das wir lösen wollen, ist diese auf die nächsten meaningful pretty number
in einem Allzweck-Algorithmus, um die obigen Informationen runden.
Dies dient zwei wichtige Vorteile:
- Preise für die meisten Währungen sollten für Besucher über kurz- bis mittelfristigen Zeitrahmen
- präsentiert sich dem Besucher mit einem kulturell meaningul Preispunkt statisch erscheinen, die
Eine meaningful number
ist eine, bei der die kleinste angezeigte Einheit nicht kleiner als der Wert von etwa 0,10 £ ist und eine pretty number
eine ist, die in 49
oderendet. Beispiel Ausgänge:
Currency Formatted Meaninful and Pretty
-----------------------------------------------------
US Dollars $16.86 $16.99
Euros €12.33 €12.49
Japanese Yen ¥1755 ¥1749
Bitcoin ฿0.03482570 ฿0.0349
Ich weiß es möglich ist, diese mit einem einzigen Algorithmus zu tun, mit allen Informationen gegeben, aber ich bin zu kämpfen, selbst zu arbeiten, wo ich anfangen soll. Kann mir jemand zeigen, wie man das erreicht, oder gibt es Hinweise?
Bitte beachten Sie, dass das Speichern einer allgemeinen Formatierungsregel für jede Währung nicht angemessen ist, da zum Beispiel der Preis von Bitcoin 10x angenommen wird, die Formatierungsregel muss aktualisiert werden. Ich suche nach einer Lösung, die keine manuelle Wartung/Überprüfung benötigt.
Ich glaube, Ihre Definition falsch ist, da .01 Dollar weniger als 0,10 Pfund –
(oder sogar 0,09 Dollar) –