C#中,浮点数的比较和decimal

浮点数

C# 的浮点数类型,float、double ,当我们定义一个浮点数可以:
可以使用var 关键字,可以做类型推断
定义float类型,数字末尾需要加上 F或者是f

//定义一个double类型
double a1=1.1;
var a2 = 1.1;
Console.WriteLine(a2.GetType());
//定义一个float类型,数字末尾需要加上 F或者是f 
float b1=1.1f;
var b2 =1.1f; 
Console.WriteLine(b1.GetType());

浮点数的计算会有误差:

 //浮点数的比较,出现了差错:
 double a = 1.3;
 double b = 1.1;
 double c = 0.2;

 if (a - b == c)
 {
     Console.WriteLine("ok");
 }
 else
 {
     Console.WriteLine((a - b).ToString("R"));
     Console.WriteLine("no");
 }

结果如下:
在这里插入图片描述

decimal

使用decimal来定义,数字末尾需要加上 M 或者 m

var c1 = 1.1m;
decimal c2 = 1.1M;
Console.WriteLine(c1.GetType());

使用decimal计算:

 //使用decimal类型
 decimal d = 1.3m;
 decimal e = 1.1m;
 decimal f = 0.2m;
 if (d - e == f)
 {
     Console.WriteLine(d - e);
     Console.WriteLine("ok");
 }
 else
 {
     Console.WriteLine("no");
 }

结果如下:
在这里插入图片描述
所以,涉及到浮点数的运算与比较,请使用decimal类型。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值