Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Decimal को 16-बिट अनसाइन्ड इंटीजर (UInt16) में बदलना

Decimal.ToUInt16() स्टैटिक मेथड निर्दिष्ट Decimal मान को समतुल्य 16-बिट अनसाइन्ड इंटीजर (ushort, रेंज 0 से 65,535) में बदलता है। दशमलव भाग काट दिया जाता है (ट्रंकेट)।

उदाहरण 1: दशमलव मान का रूपांतरण

using System;

public class Demo {
    public static void Main() {
        decimal val = 875.647m;
        Console.WriteLine("Decimal मान = " + val);

        // Decimal को UInt16 में बदलें
        ushort result = Decimal.ToUInt16(val);
        
        Console.WriteLine("16-बिट अनसाइन्ड इंटीजर = " + result);
    }
}

आउटपुट

Decimal मान = 875.647
16-बिट अनसाइन्ड इंटीजर = 875

उदाहरण 2: छोटे दशमलव मान (शून्य में ट्रंकेट)

using System;

public class Demo {
    public static void Main() {
        decimal val = 0.001m;
        Console.WriteLine("Decimal मान = " + val);

        ushort result = Decimal.ToUInt16(val);
        Console.WriteLine("16-बिट अनसाइन्ड इंटीजर = " + result);
    }
}

आउटपुट

Decimal मान = 0.001
16-बिट अनसाइन्ड इंटीजर = 0

महत्वपूर्ण नियम और अपवाद

  • रेंज: मान 0 से 65,535 (UInt16.MinValue से UInt16.MaxValue) के बीच होना चाहिए।
  • ट्रंकेशन: दशमलव भाग काट दिया जाता है (राउंड नहीं)।
  • OverflowException: मान रेंज से बाहर होने पर फेंका जाता है।
  • नकारात्मक मान: अनुमति नहीं - OverflowException फेंका जाता है।

अपवाद उदाहरण

try {
    decimal tooLarge = 70000m;
    ushort result = Decimal.ToUInt16(tooLarge); // OverflowException
}
catch (OverflowException ex) {
    Console.WriteLine("मान UInt16 रेंज से बाहर: " + ex.Message);
}

try {
    decimal negative = -10m;
    ushort result = Decimal.ToUInt16(negative); // OverflowException
}
catch (OverflowException ex) {
    Console.WriteLine("नकारात्मक मान अनुमत नहीं: " + ex.Message);
}

Decimal रूपांतरण मेथड्स तुलना

मेथडलौटाता हैरेंज
ToSBytesbyte-128 से 127
ToBytebyte0 से 255
ToInt16short-32,768 से 32,767
ToUInt16ushort0 से 65,535
ToInt32int-2,147,483,648 से 2,147,483,647
ToUInt32uint0 से 4,294,967,295
ToInt64long-9,223,372,036,854,775,808 से 9,223,372,036,854,775,807
ToUInt64ulong0 से 18,446,744,073,709,551,615

सर्वोत्तम अभ्यास

  • रूपांतरण से पहले रेंज जांचें या try-catch उपयोग करें।
  • वित्तीय गणनाओं के लिए Decimal उपयोग करें, रूपांतरण केवल अंत में।
  • checked संदर्भ में ऑवरफ्लो जांच स्वतः सक्षम होती है।
  1. - C# में 16-बिट अनसाइन्ड पूर्णांक (ushort) से Decimal में निहित रूपांतरण

    UShort 16-बिट अनसाइन्ड पूर्णांक को दर्शाता है। 16-बिट अनसाइन्ड पूर्णांक को दशमलव में निहित रूप से परिवर्तित करने के लिए, पहले ushort मान सेट करें: ushort val = 193; ushort को decimal में बदलने के लिए, मान निर्दिष्ट करें: decimal dec; dec = val; उदाहरण using System; public class Demo { public st

  1. - C# में दशमलव संख्या का अष्टाधारी (Octal) समतुल्य कैसे निकालें?

    परिचय दशमलव (बेस 10) से अष्टाधारी (बेस 8) रूपांतरण के लिए, संख्या को 8 से बार-बार विभाजित करें और शेषफल (रिमेंडर) एकत्र करें। शेषफल उल्टे क्रम में पढ़ने पर अष्टाधारी संख्या बनती है। एल्गोरिदम dec = दशमलव संख्या। while (dec != 0): oct[i] = dec % 8; dec /= 8; i++; सरणी oct को उल्टे क्रम में प्रिंट

  1. - C# में इंटीजर का अधिकतम संभावित मान क्या है?

    इंटीजर का अधिकतम संभावित मान 2,147,483,647 है।निम्न C# के डेटा टाइप्स हैं जिनमें अधिकतम और न्यूनतम मान दिए गए हैं:टाइपप्रतिनिधित्व करता हैरेंजडिफ़ॉल्ट मानboolबूलियन मानTrue या FalseFalsebyte8-बिट अनसाइन्ड इंटीजर0 से 2550char16-बिट यूनिकोड कैरेक्टरU+0000 से U+FFFF\0decimal128-बिट सटीक दशमलव मान 28-29