C# decimal类型

decimal 关键字表示 128 位数据类型。 同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。

decimal的精度比double高,但数值范围比double小。decimal虽然是128位,但这只是因为它的小数位可以很多,但整体数值范围却没有double大。

类型精度范围占用位
decimal28~29位有效±1.0 × 10E−28 to ±7.9 × 10E28128bit
double15~16位有效±5.0 × 10 E−324 to ±1.7 × 10E30864bit
float7位±1.5 × 10E−45 to ±3.4 × 10E3832bit

如果不做任何设置,包含小数点的数值都会被认为是double类型,

如果要将数值以float或者decimal类型来处理,则要进行强制转换。

初始化

初始化decimal类型时需要使用m/M后缀,不用的话会被认为隐式的将double类型转换为decimal类型而报错。(float也是,加f/F后缀)

decimal x = 77.2m//使用后缀m/M指明为decimal类型

类型转换

当把整型数值赋值给decimal变量时,不需要使用m/M后缀。整型数值会被隐式的转换为decimal类型。

decimal y = 87//87会被隐式的转换为decimal类型

在浮点型与decimal之间不存在隐式的转换,因此需要强制类型转换

decimal x = 123.4m;    //声明decimal类型变量

double y = (double)x;    //声明double类型变量y,并将decimal类型变量x强制转换为double类型,并赋值给y

x = (decimal)y;    //将double类型变量y强制转换为decimal类型,并赋值给x
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值