Decimal data type
کچھ پروگرامنگ زبانیں (یا ان کے لیے مرتب) ایک بلٹ ان (ابتدائی) یا لائبریری اعشاریہ ڈیٹا ٹائپ فراہم کرتی ہیں جو کہ بغیر گول کیے 0.3 اور-1.17 جیسے اعشاریہ حصوں کی نمائندگی کرتی ہیں، اور ان پر ریاضی کرتی ہیں۔ مثال کے طور پر decimal.Decimal قسم کا ازگر، اور دیگر زبانوں کے ذریعہ فراہم کردہ ہم آہنگ اقسام ہیں۔ عقلی فریکشنل نمبروں کو زیادہ تر پروگرامنگ زبانوں میں فلوٹنگ پوائنٹ نمبروں یا فکسڈ پوائنٹ نمبروں کے طور پر سپورٹ کیا جاتا ہے۔ تاہم، اس طرح کی نمائندگی عام طور پر ڈینومینیٹر کو دو کی طاقت تک محدود رکھتی ہے۔ زیادہ تر اعشاریہ حصوں (یا عام طور پر زیادہ تر حصوں) کو بالکل ایک ڈینومینیٹر کے ساتھ ایک فریکشن کے طور پر پیش نہیں کیا جا سکتا جو دو کی طاقت ہے۔ مثال کے طور پر، سادہ اعشاریہ حصہ 0.3 (3/10) کو 5404319552844595/18014398509481984 (0.299999999999999988897769) کے طور پر پیش کیا جا سکتا ہے۔ یہ بے عملی بہت سے مسائل کا سبب بنتی ہے جو تجربہ کار پروگرامرز سے واقف ہیں۔ مثال کے طور پر، اعشاریہ کی نمائندگی کی بے قاعدگی کی وجہ سے، اظہار 0.1 * 7 = = 0.7 کچھ نظاموں میں متضاد طور پر غلط کا اندازہ لگا سکتا ہے۔ اگرچہ تمام اعشاری حصے کفن ہوتے ہیں، اور اس طرح اس کی قطعی نمائندگی کرنے کے لیے عقلی ڈیٹا ٹائپ کا استعمال کرنا ممکن ہے، لیکن بہت سے حالات میں صرف غیر تکراری اعشاری حصوں (وہ کفن جن کا ڈینومینیٹر دس کی طاقت ہے) پر غور کرنا زیادہ آسان ہو سکتا ہے۔ مثال کے طور پر، دنیا بھر میں کرنسی کی فریکشنل اکائیاں زیادہ تر ایک ڈینومینیٹر پر مبنی ہوتی ہیں جو دس کی طاقت ہے۔ نیز، سائنس میں زیادہ تر فریکشنل پیمائشوں کو اعشاری حصوں کے طور پر رپورٹ کیا جاتا ہے، جیسا کہ ڈینومینیٹرز کے کسی بھی دوسرے نظام کے ساتھ فریکشن کے برخلاف ہے۔ اعشاریہ ڈیٹا کی قسم کو یا تو فلوٹنگ پوائنٹ نمبر کے طور پر یا فکسڈ پوائنٹ نمبر کے طور پر لاگو کیا جا سکتا ہے۔ فکسڈ پوائنٹ کیس میں، ڈینومینیٹر کو دس کی فکسڈ پاور پر سیٹ کیا جائے گا۔ فلوٹنگ پوائنٹ کیس میں، ایک متغیر ایکسپونینٹ دس کی طاقت کی نمائندگی کرے گا جس سے نمبر کا مینٹیسا ضرب ہوتا ہے۔ وہ زبانیں جو عقلی ڈیٹا کی قسم کی حمایت کرتی ہیں عام طور پر بیس-2 فلوٹنگ پوائنٹ نمبر کے بجائے دو انٹیجرز سے اس طرح کی قدر کی تعمیر کی اجازت دیتی ہیں، جس کی وجہ مؤخر الذکر کی وجہ سے درستگی کا نقصان ہوتا ہے۔ عام طور پر بنیادی ریاضی کی کارروائیوں ('+'، '−'، '×'، '/'، انٹیجر پاورز) اور موازنہ ('='، '<'، '>'، '≤') کو ان پر عمل کرنے کے لیے بڑھایا جائے گا-یا تو مقامی طور پر یا زبان کے ذریعہ فراہم کردہ آپریٹر اوورلوڈنگ کی سہولیات کے ذریعے۔ ان کارروائیوں کا ترجمہ مرتب کرنے والا انٹیجر مشین کی ہدایات کے سلسلے میں، یا لائبریری کالز میں کر سکتا ہے۔ سپورٹ دیگر کارروائیوں تک بھی پھیل سکتی ہے، جیسے فارمیٹنگ، ایک انٹیجر یا فلوٹنگ پوائنٹ ویلیو تک گول کرنا، وغیرہ۔ اس کی ایک مثال ہے 123.456 معیاری فارمیٹس IEEE 754 مختلف درستگی کے تین معیاری فلوٹنگ پوائنٹ اعشاریہ ڈیٹا کی اقسام کی وضاحت کرتا ہے: اعشاریہ 32 فلوٹنگ پوائنٹ فارمیٹ اعشاریہ 64 فلوٹنگ پوائنٹ فارمیٹ اعشاریہ 128 فلوٹنگ پوائنٹ فارمیٹ زبان کی حمایت C #میں بلٹ ان ڈیٹا ٹائپ 'اعشاریہ' ہے، جس کے نتیجے میں 128 بٹ پر مشتمل ہوتا ہے جس کے نتیجے میں 28-29 اہم ہندسوں ہوتے ہیں۔ اس کی لگ بھگ رینج (-7.9 x 10 ^ 28 سے 7.9 x 10 ^ 28)/(10 ^ (0 سے 28)) ہے۔ ازگر 2.4 سے شروع کرتے ہوئے، ازگر کی معیاری لائبریری میں ماڈیول میں ایک کلاس شامل ہے۔ روبی کی معیاری لائبریری میں ماڈیول میں ایک کلاس شامل ہے۔ جاوا کی معیاری لائبریری میں ایک java.math.BigDecimal کلاس شامل ہے۔ آبجیکٹیو-سی میں، کوکو اور جی این یو اسٹیپ اے پی آئی اعشاریہ کی نمائندگی کے لیے ایک این ایس ڈیسیمل نمبر کلاس اور ایک این ایس ڈیسیمل سی ڈیٹا ٹائپ فراہم کرتے ہیں جن کا مینٹیسا 38 ہندسوں تک لمبا ہوتا ہے، اور ایکسپونینٹ-128 سے 127 تک ہوتا ہے۔ کچھ آئی بی ایم سسٹمز اور ایس کیو ایل سسٹمز کم از کم دو بڑے فارمیٹس کے ساتھ ڈی ای سی ایف ایل او اے ٹی فارمیٹ کی حمایت کرتے ہیں۔ اے بی اے پی کے نئے ڈی ای سی ایف ایل او اے ٹی ڈیٹا ٹائپ میں اعشاریہ 64 (ڈی ای سی ایف ایل او اے ٹی 16 کے طور پر) اور اعشاریہ 128 (ڈی ای سی ایف ایل او اے ٹی 34 کے طور پر) فارمیٹس شامل ہیں۔ پی ایل/آئی مقامی طور پر فکسڈ پوائنٹ اور فلوٹنگ پوائنٹ اعشاریہ ڈیٹا دونوں کی حمایت کرتا ہے۔ جی این یو کمپائلر کلیکشن (جی سی سی) اعشاریہ فلوٹس کو توسیع کے طور پر سپورٹ فراہم کرتا ہے۔ صوابدیدی-صحت سے متعلق ریاضی فلوٹنگ پوائنٹ ریاضی فلوٹنگ پوائنٹ ایرر میٹیگیشن حوالہ جات ڈیٹا ٹائپز کمپیوٹر ریاضی بھی دیکھیں۔