দশমিক কলামে অর্থ সঞ্চয় করা - কোন নির্ভুলতা এবং স্কেল?


173

আমি একটি ডাটাবেসে অর্থের মান সঞ্চয় করতে একটি দশমিক কলাম ব্যবহার করছি এবং আজ আমি ভাবছিলাম যে কোন নির্ভুলতা এবং স্কেলটি ব্যবহার করতে হবে।

যেহেতু একটি নির্দিষ্ট প্রস্থের চর কলামগুলি আরও দক্ষ, তাই আমি ভাবছিলাম দশমিক কলামগুলির ক্ষেত্রেও এটি একই হতে পারে। তাই কি?

এবং আমার কোন নির্ভুলতা এবং স্কেল ব্যবহার করা উচিত? আমি 24/8 নির্ভুলতার কথা ভাবছিলাম। ওভারকিল কি যথেষ্ট না ঠিক আছে?


আমি এটি করার সিদ্ধান্ত নিয়েছি:

  • রূপান্তর হারগুলি (যখন প্রযোজ্য হয়) লেনদেন সারণীতে নিজেই ভাসা হিসাবে সংরক্ষণ করুন
  • অ্যাকাউন্ট সারণীতে মুদ্রা সঞ্চয় করুন
  • লেনদেনের পরিমাণ হবে a DECIMAL(19,4)
  • রূপান্তর হার ব্যবহার করে সমস্ত গণনা আমার অ্যাপ্লিকেশন দ্বারা পরিচালনা করা হবে তাই আমি গোলাকার সমস্যাগুলিকে নিয়ন্ত্রণ রাখি

আমি মনে করি না যে রূপান্তর হারের জন্য একটি ভাসাটি একটি বিষয়, কারণ এটি বেশিরভাগ ক্ষেত্রেই রেফারেন্সের জন্য, এবং আমি যেভাবেই এটি দশমিক স্থানে ফেলে দেব।

আপনার মূল্যবান ইনপুট জন্য আপনাকে ধন্যবাদ।


2
নিজেকে প্রশ্ন জিজ্ঞাসা করুন: দশমিক আকারে ডেটা সংরক্ষণ করা কি সত্যিই প্রয়োজনীয়? আমি ডেটা সেন্ট / পেনিস -> পূর্ণসংখ্যা হিসাবে সঞ্চয় করতে পারি?
টেরেন্স

5
DECIMAL(19, 4) একটি জনপ্রিয় পছন্দ পরীক্ষা এই এছাড়াও পরীক্ষা এখানে পৃথিবী মুদ্রা বিন্যাস ব্যবহার কতগুলি দশমিক স্থান সিদ্ধান্ত নিতে, আশা করতে সাহায্য করে।
shaijut

উত্তর:


181

আপনি যদি একটি আকারের-ফিটস-সবগুলির DECIMAL(19, 4)জন্য সন্ধান করেন তবে আমি পরামর্শ দিচ্ছি যে একটি জনপ্রিয় পছন্দ (একটি দ্রুত গুগল এটি বহন করে)। আমি মনে করি এটি ভাষাতে প্রথম নির্দিষ্ট পয়েন্ট দশমিক প্রকার হিসাবে পুরানো ভিবিএ / অ্যাক্সেস / জেট কারেন্সি ডেটা টাইপ থেকে উদ্ভূত; Decimalকেবলমাত্র ভিবি 6 / ভিবিএ 6 / জেট 4.0-এ 'সংস্করণ 1.0' শৈলীতে (অর্থাত্ সম্পূর্ণরূপে প্রয়োগ করা হয়নি) এসেছিল।

জন্য চলতি রীতি স্টোরেজ নির্দিষ্ট বিন্দু দশমিক মূল্যবোধের দোকান থেকে অন্তত আরো এক দশমিক স্থান চেয়ে আপনি আসলে rounding জন্য অনুমতি প্রয়োজন হয়। পূর্বের প্রান্তে পুরানো Currencyপ্রকারটি ম্যাপিংয়ের পিছনের প্রান্তে DECIMAL(19, 4)টাইপ করার একটি কারণ হ'ল Currencyপ্রকৃতি অনুসারে ব্যাঙ্কারদের বৃত্তাকার প্রদর্শিত হয়েছিল , যেখানে DECIMAL(p, s)কাটা কাটা বৃত্তাকার।

স্টোরেজে অতিরিক্ত দশমিক স্থানটি DECIMALবিক্রেতার ডিফল্ট গ্রহণের পরিবর্তে কাস্টম রাউন্ডিং অ্যালগরিদমকে প্রয়োগ করতে দেয় (এবং ব্যাঙ্কারদের বৃত্তাকারটি উদ্বেগজনক, কমপক্ষে বলতে গেলে, ডিজাইনারের জন্য সমস্ত মানগুলি 5 থেকে শেষ হওয়া শূন্য থেকে দূরে যেতে পারে) ।

হ্যাঁ, DECIMAL(24, 8)আমার কাছে ওভারকিলের মতো শোনাচ্ছে। বেশিরভাগ মুদ্রা চার বা পাঁচ দশমিক জায়গায় উদ্ধৃত হয়। আমি পরিস্থিতিতে যেখানে 8 দশমিক স্কেল (বা তার বেশি) জানি হয় প্রয়োজন কিন্তু এই হল যেখানে একটি 'স্বাভাবিক' আর্থিক পরিমাণ (বলে চার দশমিক স্থান) প্রো rata'd হয়েছে, দশমিক নির্ভুলতা implying তদনুসারে হ্রাস করা উচিত (এছাড়াও বিবেচনা এই পরিস্থিতিতে একটি ভাসমান পয়েন্ট টাইপ)। আর আজকের 24 দশমিক দশমিক নির্ভুলতার জন্য কারও কাছে এত বেশি টাকা নেই :)

তবে, এক-আকারের-সমস্ত-পদ্ধতির পরিবর্তে কিছু গবেষণা যথাযথ হতে পারে। অ্যাকাউন্টিং নিয়ম যা প্রযোজ্য হতে পারে সম্পর্কে আপনার ডিজাইনার বা ডোমেইন বিশেষজ্ঞ জিজ্ঞাসা করুন: জিএএপি, ইউরোপীয় ইউনিয়ন, ইত্যাদি আমি অস্পষ্টভাবে, পাঁচ দশমিক স্থানে rounding জন্য স্পষ্ট নিয়ম কিছু ইইউ ভিতরে-রাষ্ট্র স্থানান্তর প্রত্যাহার অতএব ব্যবহার DECIMAL(p, 6)সঞ্চয়ের জন্য। হিসাবরক্ষকরা সাধারণত চার দশমিক জায়গার পক্ষে বলে মনে হয়।


পিএস এসকিউএল সার্ভারের MONEYডেটা টাইপ এড়িয়ে চলুন কারণ পোর্টেবিলিটি ইত্যাদির মতো অন্যান্য বিবেচনার মধ্যে গোল করার সময় যথার্থতার সাথে এতে গুরুতর সমস্যা রয়েছে Aaron অ্যারন বারট্র্যান্ডের ব্লগ দেখুন


মাইক্রোসফ্ট এবং ভাষা ডিজাইনাররা ব্যাঙ্কারের গোলকে বেছে নিয়েছিল কারণ হার্ডওয়্যার ডিজাইনাররা এটি [প্রশংসাপত্র?] বেছে নিয়েছিল। উদাহরণস্বরূপ এটি ইলেকট্রিক্যাল অ্যান্ড ইলেকট্রনিক্স ইঞ্জিনিয়ার্স ইনস্টিটিউট (আইইইই) মানদণ্ডে অন্তর্ভুক্ত রয়েছে। এবং হার্ডওয়্যার ডিজাইনাররা এটি বেছে নিয়েছে কারণ গণিতবিদরা এটি পছন্দ করেন। উইকিপিডিয়া দেখুন ; প্যারাফ্রেজ করতে: প্রব্যাবিলিটি এবং তত্ত্বের ত্রুটিগুলির 1906 সংস্করণটিকে এটিকে 'কম্পিউটারের নিয়ম' ("কম্পিউটার" অর্থ যারা মানুষ গণনা করেন) বলে অভিহিত করে।


1
ভাষা ডিজাইনাররা কেন ব্যাঙ্কারের রাউন্ডিং চয়ন করেন তার আরও তথ্যের জন্য এই উত্তর এবং এই পৃষ্ঠাটি দেখুন।
নিক চামাস

1
onedaywhen: ব্যাঙ্কারের রাউন্ডিং মাইক্রোসফ্টের কারণে নয়। @ নিকচ্যামাস: এটি কোনও ভাষা ডিজাইনারের আবিষ্কারও নয়। মাইক্রোসফ্ট এবং ভাষা ডিজাইনাররা মূলত এটিকে বেছে নিয়েছিল কারণ হার্ডওয়্যার ডিজাইনাররা এটি পছন্দ করেছে; উদাহরণস্বরূপ, এটি ইলেকট্রিক্যাল অ্যান্ড ইলেকট্রনিক্স ইঞ্জিনিয়ার্স ইনস্টিটিউট (আইইইই) মানক্রে অন্তর্ভুক্ত রয়েছে। এবং হার্ডওয়্যার ডিজাইনাররা এটি বেছে নিয়েছে কারণ গণিতবিদরা এটি পছন্দ করেন। En.wikedia.org/wiki/ রাউন্ডিং# হিস্টোরি দেখুন ; প্যারাফ্রেজ করতে: প্রব্যাবিলিটি এবং তত্ত্বের ত্রুটিগুলির 1906 সংস্করণটিকে এটিকে 'কম্পিউটারের নিয়ম' ("কম্পিউটার" অর্থ যারা মানুষ গণনা করেন) বলে অভিহিত করে।
ফুগ

9
তাহলে বিটকয়েনের জন্য আমার কী ব্যবহার করা উচিত?
টুলকিট

1
@nedaywhen এর DECIMAL(19, 4)চেয়ে বেশি জনপ্রিয় কেন DECIMAL(19, 2)? বেশিরভাগ বিশ্বের মুদ্রাগুলি কেবল দুটি দশমিক স্থান।
অপরাহ্ন

3
@ জিপএ ১35৩০১০: হ্যাঁ, আমার দৃ so় বক্তব্যটি দশ বছর আগে! তবে এটি আমার তৃতীয়টি সবচেয়ে বেশি ভোটের জবাব দিয়েছে এবং আমার এসও প্রতিনিধি হিসাবে আমি এটিকে পরিবর্তন করতে চাইছি ন্যায্য পরিবর্তনের জন্য অ্যাকাউন্টে :)
ওনেডেওয়াহেন

105

আমরা সম্প্রতি এমন একটি সিস্টেম বাস্তবায়ন করেছি যার একাধিক মুদ্রায় মানগুলি হ্যান্ডেল করা এবং তাদের মধ্যে রূপান্তর করা দরকার এবং কয়েকটি বিষয় কঠোরভাবে খুঁজে বের করতে হবে।

অর্থের জন্য ফ্লাইটিং পয়েন্ট সংখ্যা কখনও ব্যবহার করবেন না

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

যখন আপনার গণনা বা রূপান্তরগুলি করতে হবে:

  1. ভাসমান বিন্দুতে মান রূপান্তর করুন
  2. নতুন মান গণনা করুন
  3. সংখ্যাটি বৃত্তাকার করুন এবং এটিকে পূর্বে পূর্ণসংখ্যায় রূপান্তর করুন

পদক্ষেপ 3-এ কোনও ভাসমান পয়েন্ট সংখ্যাটি পূর্বে পূর্ণসংখ্যায় রূপান্তর করার সময়, কেবল এটি নিক্ষেপ করবেন না - প্রথমে এটিকে বৃত্তাকারে গণিত ফাংশনটি ব্যবহার করুন। এটি সাধারণত হবে round, যদিও বিশেষ ক্ষেত্রে এটি হতে পারে floorবা ceil। পার্থক্যটি জানুন এবং সাবধানে চয়ন করুন।

মানের পাশাপাশি একটি সংখ্যার ধরণ সংরক্ষণ করুন

আপনি যদি কেবল একটি মুদ্রা পরিচালনা করেন তবে এটি আপনার পক্ষে ততটা গুরুত্বপূর্ণ হতে পারে না, তবে একাধিক মুদ্রা পরিচালনা করার ক্ষেত্রে এটি আমাদের পক্ষে গুরুত্বপূর্ণ। আমরা মুদ্রার জন্য 3-অক্ষর কোড ব্যবহার করি, যেমন ইউএসডি, জিবিপি, জেপিওয়াই, EUR, ইত্যাদি etc.

পরিস্থিতির উপর নির্ভর করে এটি সঞ্চয় করতেও সহায়ক হতে পারে:

  • নম্বরটি করের আগে বা পরে (এবং করের হার কী ছিল)
  • নম্বরটি কোনও রূপান্তরের ফলাফল কিনা (এবং এটি কী রূপান্তরিত হয়েছিল)

আপনি যে সংখ্যাগুলির সাথে আচরণ করছেন তার যথার্থতা সীমাটি জানুন

বাস্তব মানগুলির জন্য, আপনি মুদ্রার ক্ষুদ্রতম ইউনিটের মতো যথাযথ হতে চান। এর অর্থ আপনার এক শতাংশ, এক পয়সা, ইয়েন, একটি শাল ইত্যাদির চেয়ে কম মূল্য নেই, কারণ ছাড়াই উচ্চতর নির্ভুলতার সাথে মানগুলি সংরক্ষণ করবেন না।

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


এই সমস্ত নিয়ম একসাথে যুক্ত করে আমরা নীচের বিধিগুলির বিষয়ে সিদ্ধান্ত নিয়েছি। চলমান কোডে, মুদ্রাগুলি ক্ষুদ্রতম ইউনিটের জন্য একটি পূর্ণসংখ্যা ব্যবহার করে সংরক্ষণ করা হয়।

class Currency {
   String code;       //  eg "USD"
   int value;         //  eg 2500
   boolean converted;
}

class Price {
   Currency grossValue;
   Currency netValue;
   Tax taxRate;
}

ডাটাবেসে মানগুলি নিম্নলিখিত বিন্যাসে স্ট্রিং হিসাবে সংরক্ষণ করা হয়:

USD:2500

এটি 25.00 ডলার এর মান সঞ্চয় করে। আমরা কেবল এটি করতে পেরেছিলাম কারণ মুদ্রার সাথে সম্পর্কিত কোডটি ডাটাবেস স্তরের মধ্যে থাকা দরকার নেই, তাই সমস্ত মান প্রথমে মেমরিতে রূপান্তরিত হতে পারে। অন্যান্য পরিস্থিতি নিঃসন্দেহে নিজেকে অন্য সমাধানে leণ দেবে।


এবং যদি আমি আগে এটি পরিষ্কার করে না দিয়েছি তবে ভাসা ব্যবহার করবেন না!


1
কখনও বলবেন না: কখনও কখনও অর্থের পরিমাণ হয় এবং পরে আবার যুক্ত করা প্রয়োজন। উদাহরণ: শেয়ার প্রতি নেট দেওয়ার জন্য ইস্যুতে শেয়ারের সংখ্যা (তুলনামূলকভাবে ছোট) দ্বারা বিভক্ত মোট লভ্যাংশ (তুলনামূলকভাবে ছোট) ভাগ করা। কখনও কখনও আরও ভাল রাউন্ডগুলি ভাসিয়ে দেয় :)
onedaywhen

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

4
এই উত্তরটি ডগলাস ক্রকফোর্ড তার "জাভাস্ক্রিপ্ট সিরিজের ক্রকফোর্ড" তে বর্ণিত জাভাস্ক্রিপ্টের সেরা অনুশীলনের সাথেও সামঞ্জস্য রয়েছে, যেখানে গোল করার ক্ষেত্রে মেশিনের ত্রুটি এড়ানোর জন্য তিনি পেনিসে সমস্ত মুদ্রার গণনা করার পরামর্শ দেন। সুতরাং আপনি যদি মুদ্রার সাথে জাভাস্ক্রিপ্টে কাজ করছেন তবে মানটি এইভাবে সঞ্চয় করতে অনেক অর্থ হয়।
পেপারডક્શન

1
@ লোনায়েভ যখন শেয়ারের ক্ষেত্রে এই নেটগুলি হয়, আপনি মূল পরিমাণের পরিমাণটি যোগ করতে পারেন এবং মূল মোটের সাথে তুলনা করতে পারেন এবং বাকীটি (দশমিক / পূর্ণসংখ্যার প্রকারগুলি ব্যবহার করার সময়) সাথে ডিল করার কৌশল তৈরি করতে পারেন dev
শিব

2
মাইএসকিএল-এর জন্য, আমি bigintযদি আপনি পরিমাণ অনুসারে বাছাই করতে চান তবে পূর্ণসংখ্যা (2500) সংরক্ষণ করার পরামর্শ দিচ্ছি । এবং বড় পূর্ণসংখ্যার সাথে ডিল করার সময় পিএইচপি 32 বিটের সাথে আপনার সময় নষ্ট করবেন না, 64 বিট বা নোড.জেএস;) এ আপগ্রেড করুন
রিকি বয়েস

4

মাইএসকিউএলে অর্থ পরিচালনার সময়, আপনি যদি নিজের অর্থের মূল্যবোধের নির্ভুলতা জানেন তবে ডিকিমাল (13,2) ব্যবহার করুন বা যদি আপনি কেবলমাত্র একটি ভাল ভাল-পর্যাপ্ত আনুমানিক মান চান তবে ডাবল ব্যবহার করুন। সুতরাং যদি আপনার অ্যাপ্লিকেশনটির জন্য ট্রিলিয়ন ডলার (বা ইউরো বা পাউন্ড) পর্যন্ত অর্থের মান হ্যান্ডেল করা দরকার হয় তবে এটি কার্যকর করা উচিত:

DECIMAL(13, 2)

অথবা, যদি আপনাকে জিএএপি মেনে চলতে হয় তবে ব্যবহার করুন:

DECIMAL(13, 4)

3
আপনি কি 2500 পৃষ্ঠার নথির বিষয়বস্তুগুলির পরিবর্তে GAAP নির্দেশিকাগুলির নির্দিষ্ট অংশের সাথে লিঙ্ক করতে পারেন ? ধন্যবাদ।
প্রতিক্রিয়াশীলআঙ্গুলারভিউস

পুনঃটুইটটিংআঙ্গুলারভিউজ পৃষ্ঠাটি পরিবর্তিত হয়েছে বলে মনে হচ্ছে। দুঃখিত
pollux1er

2

4 দশমিক স্থান আপনাকে বিশ্বের বৃহত্তম মুদ্রার সাব-ইউনিটগুলি সঞ্চয় করার নির্ভুলতা দেয় would আপনার যদি মাইক্রোপেমেন্ট (ন্যানোপায়মেন্ট ?!) নির্ভুলতার প্রয়োজন হয় তবে আপনি এটিকে আরও নামিয়ে নিতে পারেন।

আমিও DECIMALডিবিএমএস-নির্দিষ্ট অর্থের প্রকারগুলিকে পছন্দ করি , আপনি অ্যাপ্লিকেশন আইএমওতে এই ধরণের যুক্তি রাখাই নিরাপদ। একই লাইনের সাথে আরও একটি পদ্ধতি হ'ল অ্যাপ্লিকেশন স্তরে সম্পন্ন মানব পাঠযোগ্যতার (currency = মুদ্রা প্রতীক) জন্য itunit.subunit রূপরেখার সাথে একটি [দীর্ঘ] পূর্ণসংখ্যা ব্যবহার করা।


1

এসকিউএল সার্ভারে মানি ডেটাটাইপের দশমিকের পরে চারটি অঙ্ক থাকে।

এসকিউএল সার্ভার 2000 বই অনলাইন থেকে:

আর্থিক তথ্য ইতিবাচক বা নেতিবাচক পরিমাণে অর্থ উপস্থাপন করে। মাইক্রোসফ্ট ® এসকিউএল সার্ভার ™ 2000 এ, অর্থ এবং স্মলমনি ডেটার ধরণগুলি ব্যবহার করে আর্থিক তথ্য সংরক্ষণ করা হয়। আর্থিক তথ্য চার দশমিক স্থানের নির্ভুলতায় সংরক্ষণ করা যেতে পারে। মান -922,337,203,685,477.5808 থেকে +922,337,203,685,477.5807 (একটি মান সংরক্ষণ করার জন্য 8 বাইট প্রয়োজন) থেকে মান সঞ্চিত করতে মানি টাইপের ধরণটি ব্যবহার করুন। 212,748.3648 থেকে 214,748.3647 এর মধ্যে (214,748.3647 (একটি মান সঞ্চয় করার জন্য 4 বাইট প্রয়োজন) এর মধ্যে সীমাতে মানগুলি সংরক্ষণ করতে স্মলমুনি ডেটা টাইপ ব্যবহার করুন। যদি আরও বেশি সংখ্যক দশমিক স্থানের প্রয়োজন হয় তবে এর পরিবর্তে দশমিক ডেটা টাইপ ব্যবহার করুন।


1

কখনও কখনও আপনাকে এক শতাংশেরও কম যেতে হবে এবং আন্তর্জাতিক মুদ্রাগুলি রয়েছে যা খুব বড় বিচ্যুতি ব্যবহার করে। উদাহরণস্বরূপ, আপনি আপনার গ্রাহকদের প্রতি লেনদেনে 0.088 সেন্ট চার্জ করতে পারেন। আমার ওরাকল ডাটাবেসে কলামগুলি সংখ্যা হিসাবে সংজ্ঞায়িত করা হয়েছে (20,4)


1

আপনি যদি ডিবি-তে কোনও ধরণের পাটিগণিত ক্রিয়াকলাপ চালিয়ে যাচ্ছেন (বিলিংয়ের হার এবং আরও বহুগুণ বাড়িয়ে তুলছেন), তবে সম্ভবত আপনি যে কারণগুলি কখনও কখনও চাইবেন না, সেখানকার লোকেরা যে পরামর্শ দিচ্ছে তার চেয়ে অনেক বেশি নির্ভুলতা চাইবেন অ্যাপ্লিকেশন কোডে একটি ডাবল-নির্ভুলতা ভাসমান পয়েন্ট মানের চেয়ে কম কিছু ব্যবহার করতে চাই


আমি যা ভাবছিলাম তা ছিল, তবে মুদ্রার হারের ক্ষেত্রে (যেমন, জিম্বাবুয়ে ডলারকে মার্কিন ডলারে রূপান্তর করা)। আমি যে ডাটাবেসগুলিতে (পিএসকিএল, স্ক্লাইট) ব্যবহার করছি তারা কীভাবে খুব ছোট দশমিকের উপরে গোলগুলি পরিচালনা করে তা দেখার জন্য আমি কিছু পরীক্ষা-নিরীক্ষা করব।
ইভান

এছাড়াও, কিছু ডিবিএম / ভাষায় ভাসমানদের নির্ভুলতার সমস্যা হয় না?
ইভান

2
সমস্ত ভাষায় ভাসমানের নির্ভুলতার সমস্যা রয়েছে।
মার্কাস ডাউনিং

আজকাল সর্বাধিক সাধারণ সুপারিশটি হ'ল স্বেচ্ছাসেবী নির্ভুলতা (চিন্তাভাবনা BigDecimal) ব্যবহার করা , তবে দীর্ঘ সময়ের জন্য এটি ডাবল-স্পষ্টতা ছিল ( doubleপরিবর্তে ভাবেন float)। এছাড়াও, নির্বিচারে নির্ভুলতার কয়েকটি ক্ষেত্রে পারফরম্যান্সের উল্লেখযোগ্য পরিমাণ রয়েছে। পরীক্ষা নিখুঁতভাবে সঠিক পন্থা।
হ্যাঙ্ক গে

0

আপনি যদি আইবিএম ইনফর্মিক্স ডায়নামিক সার্ভার ব্যবহার করে থাকেন তবে আপনার একটি অর্থ টাইপ হবে যা ডেসিমাল বা ম্যাসেরিক টাইপের ক্ষেত্রে একটি ছোটখাটো রূপ। এটি সর্বদা একটি নির্দিষ্ট পয়েন্টের ধরণের (যেখানে ডেসিমাল একটি ভাসমান পয়েন্টের ধরণের হতে পারে)। আপনি 1 থেকে 32 পর্যন্ত একটি স্কেল এবং 0 থেকে 32 পর্যন্ত একটি নির্ভুলতা (16 এর স্কেল এবং 2 এর যথার্থতাকে ডিফল্ট) নির্দিষ্ট করতে পারেন। সুতরাং, আপনার কী সংরক্ষণ করতে হবে তার উপর নির্ভর করে আপনি ডেসিমাল (16,2) ব্যবহার করতে পারেন - মার্কিন ফেডারেল ঘাটতিটি নিকটতম শতাংশে ধরে রাখতে যথেষ্ট বড় - বা আপনি একটি ছোট পরিসর বা আরও দশমিক স্থান ব্যবহার করতে পারেন।


0

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


0

এখানে একটি দেরি উত্তর, কিন্তু আমি ব্যবহার করেছি

DECIMAL(13,2)

যা আমি সঠিকভাবে ভাবছি তার 99,999,999,999.99 অবধি অনুমতি দেওয়া উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.