ဆုတစ်ခုစီကို ဒသမနှစ်နေရာဝိုင်းခြင်းနှင့် စုစုပေါင်းမှဝိုင်းခြင်း တူသလား
ထုတ်ဝေသည့်ရက် — UTC

ဆုငွေကိုဒသမနှစ်နေရာပြထားသည်ဟူသောအချက်တစ်ခုတည်းက ပေါင်းပြီးမှဝိုင်းသလား၊တစ်ခုစီဝိုင်းသလားကိုမပြောနိုင်ပါ။ Rounding stage ကစုစုပေါင်းကိုပြောင်းနိုင်သည်။
သတ်မှတ်ထားသောhalf-up နမူနာ
မဝိုင်းရသေးသောaward1.005 ယူနစ်စီ10 ခု၊half-up two-decimal rounding ဟုစိတ်ကူးသတ်မှတ်ပါ။ Currency ၏real rules သို့မဟုတ်game payout မဟုတ်ပါ။
| နည်း | တွက်ချက်မှု | စုစုပေါင်း |
|---|---|---|
| တစ်ခုစီအရင်ဝိုင်း | 1.01 ×10 | 10.10 |
| ပေါင်းပြီးမှဝိုင်း | 1.005 ×10 =10.050 | 10.05 |

0.05 ကွာဟချက်သည်stage ကွာခြင်းမှလာသည်။ Python Decimal ကိုသုံး၍ROUND_HALF_UP နှင့်ဒသမinput string များဖြင့်ပြန်စစ်နိုင်သည်။ Binary floating-point display တစ်ခုတည်းကိုမူလငွေတန်ဖိုးဟုမယူပါနှင့်။
စာရင်းခေါင်းစဉ်တွင်ထည့်သင့်သောအချက်
Rounding mode၊precision၊stage နှင့်number of awards ကိုသိမ်းပါ။ Display1.01 ဆယ်ခုကိုပေါင်းပြီး10.10 ရသော်လည်း actual credited total က10.05 ဖြစ်နိုင်သည့်hypothetical rule ကိုဇယားကပြသည်။
တကယ့်credited total ကိုသိရန်account record နှင့်rules လိုသည်။ ကွာဟချက်တစ်ခုကိုတွေ့ရုံနှင့်အမှားသို့မဟုတ်ပေးရန်ကျန်ငွေဟုမသတ်မှတ်ပါနှင့်။
Mode ပြောင်းလျှင် တစ်ခုစီ၏အဖြေလည်းပြောင်းသည်
မူလ1.005 ကိုဒသမနှစ်နေရာ ROUND_HALF_EVEN ဖြင့်ဝိုင်းလျှင်1.00 ဖြစ်သည်။ ထို့ကြောင့်တစ်ခုစီကိုhalf-even ဝိုင်းပြီးဆယ်ခုပေါင်းလျှင်10.00 ဖြစ်သည်။ မဝိုင်းရသေးသော1.005×10=10.050 ကိုနောက်ဆုံးဒသမနှစ်နေရာဝိုင်းလျှင်half-up နှင့်half-even နှစ်မျိုးလုံး10.05 ဖြစ်သည်။ ဤနမူနာကmode တူအောင်စစ်ရသကဲ့သို့ stage ကိုလည်းစစ်ရန်လိုကြောင်းပြသည်။
တစ်ခုစီတွက်သော10.10၊10.00 နှင့်ပေါင်းပြီးတွက်သော10.05 တို့အနက်ဘယ်ကိန်းကိုသုံးရမလဲဆိုခြင်းကိုနှစ်သက်ရာမရွေးပါနှင့်။ Accepted settlement rule ကmode နှင့်stage ကိုသတ်မှတ်ပေးရသည်။
Negative adjustment ကိုလည်းတူညီစွာစစ်ပါ
သီးခြားadjustment−1.005 ကိုhalf-up ဒသမနှစ်နေရာဝိုင်းလျှင်−1.01 ဖြစ်သည်။ Half-even ဖြင့်−1.00 ဖြစ်သည်။ Positive value ကိုသုံးသောနမူနာသာကြည့်ပြီး “5ဆိုအပေါ်တိုး” ဟူသောစကားလုံးဖြင့်signed values ကိုမရှင်းသင့်ပါ။ Tie point တွင်zero မှဝေးရာလား၊အနီးဆုံးeven digit လားဆိုသောmode အဓိပ္ပာယ်အတိုင်းလုပ်ပါ။
Display အတွက်ဒသမနှစ်နေရာသာပေါ်သော်လည်း backend သည်ပိုမိုတိကျသောတန်ဖိုးကိုသိမ်းနိုင်သည်။ Displayed rows ပြန်ပေါင်းသောtotal နှင့်credited total ကိုတစ်ထပ်တည်းဖြစ်ရမည်ဟု ကြိုတင်မသတ်မှတ်ပါနှင့်။
နမူနာကို Decimal ဖြင့်ပြန်တွက်ခြင်း
from decimal import Decimal, ROUND_HALF_UP
x = Decimal('1.005')
q = Decimal('0.01')
each_first = x.quantize(q, rounding=ROUND_HALF_UP) * 10
total_first = (x * 10).quantize(q, rounding=ROUND_HALF_UP)
# each_first: 10.10; total_first: 10.05
Input ကိုstring ဖြင့်တိတိကျကျပေးထားသည်။ ယခင်binary float မှDecimal သို့ပြောင်းလိုက်ရုံနှင့်မူလdecimal ကိုပြန်ရမည်ဟုမယူပါနှင့်။ Audit တွင်raw values၊mode၊precision၊stage၊count နှင့်အမှန်တကယ်credited total ကိုအတူသိမ်းပါ။ 0.05 ကွာခြားချက်တွေ့ခြင်းတစ်ခုတည်းမှပေးရန်ကျန်ငွေရှိသည်ဟုမဆုံးဖြတ်ပါနှင့်။