Money
প্রকারের মতো মনে হচ্ছে এখানে বর্ণিত হিসাবে নিরুৎসাহিত করা হচ্ছে
আমার অ্যাপ্লিকেশনটির মুদ্রা সংরক্ষণ করা দরকার, আমি কোন ডেটাটাইপ ব্যবহার করব? সংখ্যার, অর্থ বা ফ্লোট?
Money
প্রকারের মতো মনে হচ্ছে এখানে বর্ণিত হিসাবে নিরুৎসাহিত করা হচ্ছে
আমার অ্যাপ্লিকেশনটির মুদ্রা সংরক্ষণ করা দরকার, আমি কোন ডেটাটাইপ ব্যবহার করব? সংখ্যার, অর্থ বা ফ্লোট?
উত্তর:
জোরপূর্বক 2 ইউনিট সংক্ষিপ্ততা সহ সংখ্যাযুক্ত । মুদ্রা উপস্থাপন করতে কখনই ডেটাটাইপের মতো ফ্লোট বা ফ্লোট ব্যবহার করবেন না কারণ যদি আপনি করেন, আর্থিক প্রতিবেদনের নীচের লাইনের চিত্রটি + বা - কয়েক ডলার দ্বারা ভুল হয়ে থাকে তখন লোকেরা অসন্তুষ্ট হতে চলেছে।
যতদূর আমি বলতে পারি অর্থের ধরনটি historicalতিহাসিক কারণে সবেমাত্র ফেলে রাখা হয়েছে।
scale - precision
numeric(3,2)
সর্বাধিক সঞ্চয় করতে সক্ষম হবে9.99
3-2 = 1
আপনার উত্স কোনওভাবেই সরকারী নয়। এটি ২০১১-এর তারিখ এবং আমি লেখককেও চিনতে পারি না। টাকার প্রকারটি যদি অফিসিয়ালি "নিরুৎসাহিত" হয়ে থাকে তবে পোস্টগ্র্যাস এসকিউএল ম্যানুয়ালটিতে এমনটি বলত - যা তা নয় ।
জন্য আরো একটি সরকারী উৎস পড়তে (ঠিক এই সপ্তাহ থেকে!) Pgsql-সাধারণভাবে এই থ্রেড D'Arcy জে এম কেইন (অর্থ টাইপের মূল লেখক) এবং টম লেন সহ কোর ডেভেলপারদের থেকে বিবৃতি দিয়ে:
সাম্প্রতিক প্রকাশে উন্নতি সম্পর্কে সম্পর্কিত উত্তর (এবং মন্তব্যসমূহ!):
মূলত, money
এর (খুব সীমাবদ্ধ) ব্যবহার রয়েছে। Postgres উইকি মূলত এটা এড়ানোর জন্য, যারা একটুর জন্য সংজ্ঞায়িত ক্ষেত্রে করা ছাড়া তাদের প্রস্তাব দেওয়া হয়। সুবিধা বেশি numeric
হয় কর্মক্ষমতা ।
decimal
numeric
পোস্টগ্র্রেসের জন্য কেবলমাত্র একটি উপনাম , এবং আর্থিক তথ্যগুলির জন্য ব্যাপকভাবে ব্যবহৃত হয়, এটি একটি "স্বেচ্ছাসেবক নির্ভুলতা" প্রকার। ম্যানুয়াল :
প্রকারটি
numeric
খুব বড় সংখ্যার সংখ্যার সাথে সংখ্যা সংরক্ষণ করতে পারে। এটি বিশেষত আর্থিক পরিমাণ এবং অন্যান্য পরিমাণে যেখানে নির্ভুলতার প্রয়োজন সেখানে সংরক্ষণ করার জন্য সুপারিশ করা হয়।
ব্যক্তিগতভাবে, আমি integer
ভগ্নাংশের সেন্টগুলি কখনই না ঘটে (মূলত যেখানে অর্থ অর্থবোধ করে) যদি আমি মুদ্রাটিকে সেন্টের প্রতিনিধিত্ব করে সংরক্ষণ করতে চাই । উল্লিখিত বিকল্পগুলির তুলনায় এটি আরও দক্ষ।
money
প্রকারটি আসলে প্রত্যাখ্যানিত হয়েছিল। সমস্যাগুলি স্থির করা হয়েছে এবং পরবর্তী সংস্করণগুলিতে টাইপটি আবার যুক্ত করা হয়েছে। ব্যক্তিগতভাবে আমি integer
সেন্টের প্রতিনিধিত্বকারী হিসাবে মুদ্রা সঞ্চয় করতে চাই ।
আপনার পছন্দগুলি হ'ল:
bigint
: সেন্ট মধ্যে পরিমাণ সঞ্চয়। EFTPOS লেনদেন এটি ব্যবহার করে।decimal(12,2)
: ঠিক দুটি দশমিক স্থানের সাথে পরিমাণ সঞ্চয় করুন। এটি সর্বাধিক সাধারণ খাত্তয় সফ্টওয়্যার ব্যবহার করে।float
: ভয়ানক ধারণা - অপর্যাপ্ত নির্ভুলতা। নিষ্পাপ বিকাশকারীরা এটি ব্যবহার করেন।বিকল্প 2 কাজ করা সবচেয়ে সাধারণ এবং সবচেয়ে সহজ। যথার্থতাটি তৈরি করুন (আমার উদাহরণে 12 টি, অর্থাত্ 12 টি সংখ্যার অর্থ) আপনার পক্ষে সবচেয়ে বেশি কার্যকর বা বৃহত আকারে করুন।
মনে রাখবেন যে আপনি যদি একাধিক লেনদেনকে একত্রিত করছেন যা কোনও গণনার (যেমন একটি বিনিময় হারের সাথে জড়িত) ব্যবসায়ের অর্থ সহ একক মানের হয়ে থাকে তবে সঠিক ম্যাক্রো মান সরবরাহ করার জন্য যথাযথতা আরও বেশি হওয়া উচিত; এরকম কিছু ব্যবহার করার কথা বিবেচনা করুন decimal(18, 8)
যাতে যোগফলটি নির্ভুল হয় এবং স্বতন্ত্র মানগুলি প্রদর্শনের জন্য শতকরা নির্ভূলতায় গোল করা যায়।
numeric(15,4)
বা numeric(15,6)
একটি ভাল ধারণা।
আমি আমার সমস্ত আর্থিক ক্ষেত্রকে এইভাবে রাখি:
numeric(15,6)
এটি অনেকগুলি দশমিক জায়গাগুলি পাওয়া অত্যধিক বলে মনে হয়, তবে যদি একাধিক সামান্যতম সুযোগও থাকে তবে আপনাকে একাধিক মুদ্রার সাথে ডিল করতে হবে আপনার রূপান্তর করার জন্য সেই পরিমাণ নির্ভুলতা দরকার। আমি কোনও ব্যবহারকারীকে কী উপস্থাপন করছি তা বিবেচনা না করে আমি সবসময় মার্কিন ডলারের কাছে সঞ্চয় করি। এইভাবে জড়িত দিনের জন্য রূপান্তর হারকে আমি সহজেই অন্য যে কোনও মুদ্রায় রূপান্তর করতে পারি।
আপনি যদি কখনও এক মুদ্রা ব্যতীত অন্য কিছু না করেন তবে এখানে সবচেয়ে খারাপ জিনিসটি হ'ল কিছু শূন্য সংরক্ষণ করার জন্য আপনি কিছুটা জায়গা নষ্ট করেছিলেন।
bigint
আমি মাইক্রো-ডলার (বা অনুরূপ প্রধান মুদ্রা) ব্যবহার করার পরামর্শ দিচ্ছি। মাইক্রো মানে 1 মিলিয়ন তম 1 মাইক্রো-ডলার = $ 0.000001।
numeric(15,6)
অন্য জবাব প্রস্তাব?
bigint
। এখানে বিকাশকারী.মোজিলা.আর.ইন.ইউএস / ডকস / ওয়েবে / জাভাস্ক্রিপ্ট / রেফারেন্স / but তবে এটি সীমিত সহায়তায় (আপাতত) এবং সতর্কতা সহ আসে (যেমন আপনি মুদ্রা রূপান্তর করার সময় সহজেই এটি একটি ফ্লোটে গুণতে পারবেন না) । মাইক্রো-ডলার ব্যবহার করে আপনি জেএস পূর্ণসংখ্যায় সর্বাধিক সঞ্চয় করতে পারবেন তা 9 billion বিলিয়ন ডলার যা সম্ভবত এখনও বেশিরভাগ ক্ষেত্রেই ভাল।
BigInt
ক্ষুদ্রতম মুদ্রা ইউনিটে আর্থিক মান উপস্থাপন করে এমন একটি ইতিবাচক পূর্ণসংখ্যা হিসাবে মুদ্রা সঞ্চয় করতে ব্যবহার করুন (উদাহরণস্বরূপ, c 1.00 বা 100 ডলার সংরক্ষণের জন্য 100 সেন্ট বা 100 ডলার (জাপানি ইয়েন, একটি শূন্য দশমিক মুদ্রা) সংরক্ষণ করা। স্ট্রিপ যা করে - এক গ্লোবাল ইকমার্সের জন্য সবচেয়ে গুরুত্বপূর্ণ আর্থিক পরিষেবা সংস্থাগুলি।