Decimal

একটি দশমিক মানের উপস্থাপনা, যেমন 2.5। ক্লায়েন্টরা মানগুলিকে ভাষা-নেটিভ দশমিক ফরম্যাটে রূপান্তর করতে পারে, যেমন Java এর [BigDecimal][] বা Python এর [decimal.Decimal][]।

[BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python .org/3/library/decimal.html

JSON প্রতিনিধিত্ব
{
  "value": string
}
ক্ষেত্র
value

string

দশমিক মান, একটি স্ট্রিং হিসাবে।

স্ট্রিং উপস্থাপনা একটি ঐচ্ছিক চিহ্ন নিয়ে গঠিত, + ( U+002B ) বা - ( U+002D ), তারপরে শূন্য বা তার বেশি দশমিক সংখ্যার একটি ক্রম ("পূর্ণসংখ্যা"), ঐচ্ছিকভাবে একটি ভগ্নাংশ অনুসরণ করে, ঐচ্ছিকভাবে একটি সূচক একটি খালি স্ট্রিংকে 0 হিসাবে ব্যাখ্যা করা উচিত

ভগ্নাংশটি একটি দশমিক বিন্দু নিয়ে গঠিত যার পরে শূন্য বা তার বেশি দশমিক সংখ্যা থাকে। স্ট্রিংটিতে পূর্ণসংখ্যা বা ভগ্নাংশের মধ্যে অন্তত একটি সংখ্যা থাকতে হবে। চিহ্ন, পূর্ণসংখ্যা এবং ভগ্নাংশ দ্বারা গঠিত সংখ্যাকে তাৎপর্যপূর্ণ হিসাবে উল্লেখ করা হয়।

সূচকটিতে e ( U+0065 ) বা E ( U+0045 ) অক্ষর থাকে যার পরে এক বা একাধিক দশমিক সংখ্যা থাকে।

পরিষেবাগুলিকে সংরক্ষণ করার আগে দশমিক মানগুলিকে স্বাভাবিক করা উচিত :

  • একটি স্পষ্টভাবে-প্রদত্ত + চিহ্ন ( +2.5 -> 2.5 ) সরানো হচ্ছে।
  • একটি শূন্য-দৈর্ঘ্যের পূর্ণসংখ্যা মান 0 ( .5 -> 0.5 ) দিয়ে প্রতিস্থাপন করা হচ্ছে।
  • স্পষ্ট চিহ্ন ( 2.5e8 -> 2.5E+8 ) সহ সূচক অক্ষরকে বড় হাতের অক্ষরে জোর করা।
  • একটি স্পষ্টভাবে-প্রদত্ত শূন্য সূচক অপসারণ করা হচ্ছে ( 2.5E0 -> 2.5 )।

পরিষেবাগুলি তার নিজস্ব চাহিদা এবং নির্বাচিত অভ্যন্তরীণ দশমিক বাস্তবায়নের উপর ভিত্তি করে অতিরিক্ত স্বাভাবিককরণ করতে পারে , যেমন দশমিক বিন্দু এবং সূচকের মান একসাথে স্থানান্তর করা (উদাহরণ: 2.5E-1 <-> 0.25 )। অতিরিক্তভাবে, পরিষেবাগুলি বর্ধিত নির্ভুলতা নির্দেশ করতে ভগ্নাংশের পিছনের শূন্যগুলি সংরক্ষণ করতে পারে, তবে এটি করার প্রয়োজন নেই।

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

ENBF ব্যাকরণ হল:

DecimalString =
  '' | [Sign] Significand [Exponent];

Sign = '+' | '-';

Significand =
  Digits ['.'] [Digits] | [Digits] '.' Digits;

Exponent = ('e' | 'E') [Sign] Digits;

Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

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

পরিষেবাগুলি পরিষেবার সমর্থনের তুলনায় মানটির উচ্চতর নির্ভুলতা বা স্কেল থাকা সত্ত্বেও ইনপুট হিসাবে পাস করা মানগুলি গ্রহণ করতে বেছে নিতে পারে এবং সমর্থিত স্কেলের সাথে মানানসই মানকে বৃত্তাকার করা উচিত ৷ বিকল্পভাবে, পরিসেবাটি 400 Bad Request সাথে ত্রুটি হতে পারে ( gRPC তে INVALID_ARGUMENT ) যদি নির্ভুলতা হারিয়ে যায়৷

যদি পরিষেবাটি সমর্থিত সীমার বাইরে একটি মান পায় তবে পরিষেবাগুলি 400 Bad Request (gRPC-তে INVALID_ARGUMENT ) সহ ত্রুটিযুক্ত হওয়া উচিত