2017-04-08 3 views
0

私はデータモデル(sqlite3のデータベースフィールド)を持っているに丸める:Pythonで基本価格に税率を追加すると価格は次のように保存されている0または5セント

base_price1 = 3715 
base_price2 = 1000 

実際

$37.15 
$10.00 
を表し

私は、フォーラムで見つかったいくつかの推奨事項(例:https://dba.stackexchange.com/questions/15729/storing-prices-in-sqlite-what-data-type-to-use)に基づいてこのコンベンションに従ってきました。

税は、実際に

21.00% 

私は0または5セントに最終価格とラウンドをうまくしたいです

tax = 2100 

は、今私は税率は同じように保存されています。

ので

$37.15 * 1.21 = $44.9515 

だから、記憶されるべき最終的な値がする必要があります:

Python2.7でこれを実装するためのニシキヘビ/最も簡単な方法でしょう
4495 

?丸め

答えて

0

、あなたが使用することができます。

def round_to_0_or_5(i): 
    return int((5 * round((i/5.),0))) 

for i in [3445, 5550, 4442, 4443]: 
    print(i, "-->", round_to_0_or_5(i)) 

# 3445 --> 3445 
# 5550 --> 5550 
# 4442 --> 4440 
# 4443 --> 4445 

(Pythonの2.7とPython 3の両方で動作します)

関連する問題