文章目录
前言
decimal 是 C# 中一种用于表示高精度十进制数的关键字。它主要用于金融和其他需要精确计算的场景,因其能够减少因浮点数运算产生的误差。decimal 类型能够表示的数值范围较大,并且保持精度,适合需要精确表示的场合。
1. Decimal 的基本特性
大小和范围: decimal 类型占用 128 位(16 字节),其有效位数为 28-29 位数字,能够表示的数值范围为 -79,228,162,514,264,337,593,543,950,335 到 79,228,162,514,264,337,593,543,950,335。
精度: decimal 类型是一个高精度的数据类型,适合用来表示金融货币的数值,能够尽量避免因舍入错误而导致的财务问题。
运算: decimal 类型支持加、减、乘、除等基本运算。
2. 基本用法示例
using System;
class Program
{
static void Main()
{
// 声明 decimal 变量
decimal price = 19.99m; // 使用 'm' 后缀来表示 decimal 类型
decimal quantity = 3;
decimal totalCost = price * quantity;
Console.WriteLine($"每个价格: {
price}, 数量: {
quantity}, 总费用: {
totalCost}");
}
}
3. 特殊值与转换
可以通过 Convert 类将其他数据类型转换为 decimal 类型,也可以通过格式化的方式进行输出。使用 decimal 时,通常要注意转换时可能出现的精度问题。
using System;
class Program
{
static void Main()
{
// 从其他类型转换
double d = 10.5;
decimal decValue = Convert.ToDecimal(d);
Console.WriteLine($"转换后的 decimal 值: {
decValue}");
// 显示格式化
decimal amount = 123456.789m;
Console.WriteLine($"格式化金额: {
amount:C}");