1. 程式人生 > >C#中decimal,double和float的區別

C#中decimal,double和float的區別

float 單精度浮點 32bit,
double 雙精度浮點64bit,
decimal是高精度 128bit,浮點型。
float double 是 基本型別(primitive type),decimal不是。
float 有效數字7位,範圍 ±1.5 × 10E−45 to ±3.4 × 10E38
double 有效數字15/16 位,範圍 ±5.0 × 10 E−324 to ±1.7 × 10E308
decimal 有效數字 28/29 位,範圍 ±1.0 × 10E−28 to ±7.9 × 10E28
( E -- 下接幾次方)

decimal的有效位數很大,達到了28位,但是表示的資料範圍卻比float和double型別小。
使用的時候會對計算時的效能有影響。
常數寫法:
float f = 12.3F; (帶F)
double x=12.3; (不帶就是double)
decimal d = 12.30M; (帶M)

浮點數運算會有精度損失問題,有精度損失時程式不會報告,要程式設計師自己注意。