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 रूपांतरण मेथड्स तुलना
| मेथड | लौटाता है | रेंज |
|---|---|---|
| ToSByte | sbyte | -128 से 127 |
| ToByte | byte | 0 से 255 |
| ToInt16 | short | -32,768 से 32,767 |
| ToUInt16 | ushort | 0 से 65,535 |
| ToInt32 | int | -2,147,483,648 से 2,147,483,647 |
| ToUInt32 | uint | 0 से 4,294,967,295 |
| ToInt64 | long | -9,223,372,036,854,775,808 से 9,223,372,036,854,775,807 |
| ToUInt64 | ulong | 0 से 18,446,744,073,709,551,615 |
सर्वोत्तम अभ्यास
- रूपांतरण से पहले रेंज जांचें या try-catch उपयोग करें।
- वित्तीय गणनाओं के लिए Decimal उपयोग करें, रूपांतरण केवल अंत में।
checkedसंदर्भ में ऑवरफ्लो जांच स्वतः सक्षम होती है।