在C#中,用于货币的最佳数据类型是什么?
在C#中,用于货币的最佳数据类型是decimal。decimal类型是一个128位数据类型,适用于财务和货币计算。decimal类型可以表示从1.0 * 10^-28到大约7.9 * 10^28的数值,具有28-29位有效数字。要初始化一个decimal变量,请使用后缀m或M。
decimal b = 2.1m;
下面的例子显示了decimal类型的最小值和最大值。
示例
using System;
namespace DemoApplication{
public class Program{
public static void Main(){
Console.WriteLine($"Deciaml Min Value: {decimal.MinValue}");
Console.WriteLine($"Deciaml Max Value: {decimal.MaxValue}");
Console.ReadLine();
}
}
}输出
Deciaml Min Value: -79228162514264337593543950335Deciaml Max Value: 79228162514264337593543950335
decimal类型的有限值集的形式为(-1)^s * c * 10^-e,其中符号s为0或1,系数c由0 <= *c* < 2^96给出,比例e满足0 <= e <= 28。decimal类型不支持带符号的零、无穷大或NaN。decimal表示为一个96位整数,乘以10的幂。对于绝对值小于1.0m的十进制数,其值精确到小数点后第28位,但不会更精确。
对于绝对值大于或等于1.0m的十进制数,其值精确到28或29位。与float和double数据类型相反,十进制小数(例如0.1)可以在十进制表示中精确表示。在float和double表示中,这样的数字通常是无限小数,这使得这些表示更容易出现舍入误差。
decimal类型优于float和double,因为它具有更高的精度,并且范围小于float和double。
示例
让我们考虑一个将美元转换为印度卢比的例子。
using System;
namespace DemoApplication{
public class Program{
public static void Main(){
decimal usd = 2.5m;
Console.WriteLine($"USD: {usd}");
decimal inrOfOneUSD = 75.04m;
Console.WriteLine($"INR value of one USD: {inrOfOneUSD}");
decimal inr = usd * inrOfOneUSD;
Console.WriteLine($"INR value: {inr}");
Console.ReadLine();
}
}
}输出
上述代码的输出是
USD: 2.5 INR value of one USD: 75.04 INR value: 187.600
广告
数据结构
网络
关系型数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP