মার্কিন ডলারের পরিমাণ উপস্থাপনের জন্য সবচেয়ে ভাল জাঙ্গো মডেল ফিল্ডটি কী?


107

জ্যাঙ্গো মডেলের ক্ষেত্রে আমাকে মার্কিন ডলার পরিমাণ সঞ্চয় করতে হবে। ব্যবহারের জন্য সেরা মডেল ফিল্ডের ধরণটি কী? ব্যবহারকারীকে এই মানটি প্রবেশ করতে সক্ষম হতে হবে (ত্রুটি যাচাইয়ের সাথে, কেবলমাত্র কোনও নম্বর সেন্টের জন্য নির্ভুল হওয়া চাই), এটি বিভিন্ন স্থানে ব্যবহারকারীদের কাছে আউটপুট দেওয়ার জন্য ফর্ম্যাট করে এবং অন্যান্য সংখ্যার গণনা করার জন্য এটি ব্যবহার করতে পারে।

উত্তর:


173

একটি দশমিক ক্ষেত্র মুদ্রা মান জন্য সঠিক পছন্দ।

এটি দেখতে এমন কিছু দেখাবে:

credit = models.DecimalField(max_digits=6, decimal_places=2)

111
যদি আপনি জাতীয় representণের প্রতিনিধিত্ব করতে না চান তবে সেক্ষেত্রে সর্বোচ্চ_ডিজিটগুলি হতে হবে> 20
ব্রন ডেভিস

4
অন্যান্য মুদ্রা সমর্থন করার জন্য আপনার যদি এটির প্রয়োজন হয় তবে ডেসিমাল_প্লেসগুলি = 2 অগত্যা সঠিক নয়। কিছু মুদ্রার তিনটি দশমিক স্থান এবং বিটকয়েনের একটি হুবুহু 8 রয়েছে
লাই রায়ান

4
আমি মনে করি এই উদাহরণটি প্রায় সমস্ত মুদ্রায় সঠিক। বিটকয়েন যেমন মুদ্রায় প্রতিনিধিত্ব করেন, আমি মনে করি অনেক ভালো উপস্থাপনা চূড়ান্ত ব্যবহারকারীকে satoshis পরিমাণ সংরক্ষণ করতে, এবং তারপর দেন এটা যে আপনি চান একটি পূর্ণসংখ্যা ক্ষেত্র ব্যবহার করতে (বিটিসি, mBTC, ইত্যাদি) হয়
jion

ভেনিজুয়েলার জাতীয় মুদ্রায় ভেনিজুয়েলার জাতীয় debtণ উপস্থাপন না করা আপনি যদি না চান 21 ম্যাক্সডিজিট
লুইস সিয়েরা

পছন্দ করেছেন ভবিষ্যতের কোনও ডিবি পরিবর্তন রোধ করতে আমাদের আধুনিক ধরণের "মুদ্রা" নোট নিতে হবে। উদ্ধৃতি ব্যবহারের জন্য কোনও অপরাধ নেই।
enchance


35

অন্যান্য উত্তরগুলি 100% সঠিক তবে খুব ব্যবহারিক নয় কারণ আপনাকে এখনও আউটপুট, ফর্ম্যাটিং ইত্যাদি পরিচালনা করতে হবে still

আমি জাঙ্গো-অর্থ ব্যবহার করার পরামর্শ দেব :

from djmoney.models.fields import MoneyField
from django.db import models


def SomeModel(models.Model):
    some_currency = MoneyField(
        decimal_places=2,
        default=0,
        default_currency='USD',
        max_digits=11,
    )

টেমপ্লেট থেকে স্বয়ংক্রিয়ভাবে কাজ করে:

{{ somemodel.some_currency }}

আউটপুট:

$123.00

পাইথন-অর্থের মাধ্যমে এর শক্তিশালী ব্যাকএন্ড রয়েছে এবং এটি স্ট্যান্ডার্ড দশমিক ক্ষেত্রগুলির জন্য মূলত একটি ড্রপ-ইন প্রতিস্থাপন।


(ত্রুটি পরীক্ষা করে, কেবল সেন্টের জন্য একটি সংখ্যার নির্ভুলতা চান), এটিকে বিভিন্ন জায়গায় ব্যবহারকারীদের আউটপুট দেওয়ার জন্য ফর্ম্যাট করুন এবং অন্যান্য সংখ্যা গণনা করতে এটি ব্যবহার করুন। যেমন ক্ষেত্রে, ব্যবহার DecimalFieldআরও ব্যবহারিক। এবং আমি বিশ্বাস করি এটি বেশিরভাগ মানুষের জন্য প্রয়োগ করা হয়েছে। django-moneyতারা হাইলাইট হিসাবে ব্যবহার করে , মুদ্রা হ্যান্ডলিং অন্তর্ভুক্ত । সুতরাং ই-কমার্স সাইটগুলি, পেমেন্ট গেটওয়ে, ডিজিটাল মুদ্রা, ব্যাংকিং ইত্যাদির মতো লেনদেনের সাথে জড়িত প্রকল্পের জন্য এটি আরও বেশি ....
ইয়েও

আমি যুক্তি দিয়ে বলছি যেহেতু তারা ডলারের সাথে কাজ করছে - একটি মুদ্রা - এটি জ্যাঙ্গো-মানি (পাইথন-মানি) এর মতো মুদ্রা-পরিচালনার গ্রন্থাগারটি ব্যবহার করা আরও তাত্পর্যপূর্ণ কারণ এটি আপনার প্রত্যাশার মতো সমস্ত কাজ করে এবং তা সরবরাহ করে ভবিষ্যতের বৈশিষ্ট্য সমন্বয়। মূল প্রশ্নটি বলছে যে তাদের ফর্ম্যাটিং এবং গণনা প্রয়োজন (যেমন আপনি উদ্ধৃত করেছেন) এবং তার জন্য আপনি সাধারণ দশমিক ক্ষেত্রের পরিবর্তে একটি মুদ্রা গ্রন্থাগার ব্যবহার করা ভাল।
মাইকেল থম্পসন

4
আমি যদি দুটি অর্থ ক্ষেত্র যুক্ত করতে চাই বা কিছু গণনা করি?
saran3h

4
@ সরান 3 এ আপনি অর্থের দৃষ্টান্ত দিয়ে কাজ করতে পারেন এবং অন্য কোনও সংখ্যার (দশমিক) উদাহরণের মতো গণনা সম্পাদন করতে পারেন। আপনি পূর্ণসংখ্যার, ইত্যাদি দ্বারা যুক্ত করতে পারেন / বিয়োগ, গুণ
মাইকেল থম্পসন

9

দশমিক সংজ্ঞা দিন এবং মানটির সামনে একটি $ সাইন ফিরিয়ে দিন।

    price = models.DecimalField(max_digits=8, decimal_places=2)

    @property
    def price_display(self):
        return "$%s" % self.price

6
আপনি বুঝতে পেরেছেন যে আপনি ঠিক আপনার সম্পত্তিতে একটি অসীম পুনরাবৃত্তি লুপ তৈরি করেছেন, তাই না?
এল নিনজা ট্রেপাডোর

মজাদার. আমি জিজ্ঞাসা করতে পারি যে এটা কিভাবে?
রেডগ্রেন গ্রাম্বোল্ডেট

2
field = models.DecimalField(max_digits=8, decimal_places=2)

PostgreSQL এর মতো ক্ষেত্র তৈরি করা উচিত:

 "field" numeric(8, 2) NOT NULL

পোস্টগ্রিএসকিউএল সংরক্ষিত মার্কিন ডলারের পরিমাণের জন্য কোনটি সেরা উপায়।

আপনার যদি পোস্টগ্রিসএসকিউএল ফিল্ডের ধরণের "ডাবল যথার্থতা" দরকার হয় তবে জ্যাঙ্গো মডেলটিতে আপনার প্রয়োজন:

field = models.FloatField()

4
ভাসমান পয়েন্ট নম্বর হিসাবে অর্থ উপস্থাপন থেকে সাবধান থাকুন, কারণ লোকেদের গোলাকার ত্রুটিগুলি সম্পর্কে অসন্তুষ্ট হওয়ার প্রবণতা রয়েছে। আরও তথ্যের জন্য দেখুন: স্ট্যাকওভারফ্লো . com / প্রশ্নগুলি / 73৩৩০০১৯/২
অ্যাডাম পার্কিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.