在C#语言中,float、double以及decimal类型都可以用来表示小数,但三者还是有一定的不同,有效数字为相比的话,decimal类型的有效数字最大,float类型最小。计算浮点类型的运算,如果只有float和double类型选择的话,建议选择double类型,计算误差相对小一些。如果是涉及到财务或者货币金额等金融计算,建议使用十进制decimal类型,decimal的有效位数很大,达到了28位,可以保证计算结果更为精准。

针对这3种类型,其中float和double为基础类型,而decimal不是。

float类型:单精度浮点类型  32bit。有效数字7位,范围 ±1.5 × 10E−45 to ±3.4 × 10E38

double类型:双精度浮点    64bit。有效数字15/16 位,范围 ±5.0 × 10 E−324 to ±1.7 × 10E308

decimal类型:此类型为高精度类型,128bit,浮点型。范围 ±1.0 × 10E−28 to ±7.9 × 10E28

其中上述表达式中,E表示几次方的意思。

decimal类型表示的数字范围比float和double小,但计算结果误差比上述两者小,一般需要高精度小数运算或者金融财务货币计算的时候,都会选择decimal类型来存储变量值以及运算结果。

备注:原文转载自博主个人站IT技术小趣屋,原文链接为C#中float、double以及decimal类型有何不同_IT技术小趣屋

【转载】 C#中float、double以及decimal类型有何不同的更多相关文章

  1. float,double和decimal类型

    float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有 ...

  2. [转]float,double和decimal类型

    float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有 ...

  3. Java中float/double取值范围与精度

    Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...

  4. java中float/double浮点数的计算失精度问题(转)

    如果我们编译运行下面这个程序会看到什么? public class Test  {    public static void main(String args[]) {                ...

  5. C#中float, double的精度问题

    在工作中我发现了一个C#浮点数的精度问题,以下的程序运行结果并未得到我预期的结果: view source print? 01 namespace FloatTest 02 03     class ...

  6. 神奇:java中float,double,int的值比较运算

    float x = 302.01f;    System.out.println(x == 302.01); //false  System.out.println(x == 302.01f); // ...

  7. 打印出C# 中float ,double 在内存中的存放形式

    float floatA = 2.2f; ); ; i < ;++i ) { uint temp = 0x80000000 & (a << i); ) { Console.W ...

  8. 关于float /double、string类型的hash函数/hash表实现(转)

    #include <ext/hash_map> #include <math.h> #include <stdio.h> using namespace std; ...

  9. golang中float类型转换成int类型

    package main import ( "fmt" "strconv" ) func f2i(f float64) int { i, _ := strcon ...

随机推荐

  1. 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买

    作者图书京东链接,请点击------>>>    **微信小程序商城开发实战** 附京东真实评价截图: 编辑推荐 在当今移动互联网大潮中,微信应用凭借其庞大的用户基数和极强的用户黏性 ...

  2. 蓝牙BLE: ATT协议层中属性(Attribute)

    ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式. 属性(Attribute)概念是ATT层的核心,ATT层定义了属性的内容, ...

  3. springboot vue前后端分离 跨跨域配置

    public class CustomCorsFilter extends OncePerRequestFilter { @Override protected void doFilterIntern ...

  4. Loadrunner查询博客列表并循环删除博客列表中的所有博客

    Loadrunner查询博客列表并循环删除博客列表中的所有博客,在博客列表请求中使用关联,获取出列表中博客的数量,并找出博客列表请求的必要参数.关联使用Ordinal=All 找出所有匹配值 查找出所 ...

  5. win7环境下,vagrant,在启动虚拟机的时候报错io.rb:32:in `encode': incomplete "\xC8" on GBK (Encoding::InvalidByteSequenceError)

    描述: 这几天在windows环境上,部署了vagrant,在启动虚拟机的时候报错: [c:\~]$ vagrant upBringing machine 'default' up with 'vir ...

  6. 谈谈RPC——golang中jsonrpc和grpc的使用

    前言 不知从什么时候rpc这个东西开始进入我们的视野,一开始做开发的时候经常使用的都是http,偶尔使用的是socket进行通信,使用的是restful的方式.但是,一次偶然的机会你会发现RPC这个东 ...

  7. SDN实验---Mininet实验(玩转流表)

    一:实验目的 (一)案例目的 (二)实验内容 (三)网络拓扑结构 二:OpenFlow流表实验准备 (一)使用Python设置网络拓扑 --- tree_topo.py from mininet.to ...

  8. 【Layui】 layui表单必填项带*样式

    直接上代码 .layui-form-label.layui-required:after{ content:"*"; color:red; position: absolute; ...

  9. phpspreadsheet 中文文档(三) 计算引擎

    2019年10月11日13:59:52 使用PhpSpreadsheet计算引擎 执行公式计算 由于PhpSpreadsheet表示内存中的电子表格,因此它还提供公式计算功能.单元格可以是值类型(包含 ...

  10. 问题解决: 此文件来自其他计算机,可能被阻止以帮助保护该计算机/WORD在试图打开文件时遇到错误……

    最近,在打开下载的office文档(包括word.excel.ppt等)时候,总是无法直接打开,错误提示如下: 无论是邮件中的还是别的网站下载的,均提示该错误.后来搜索相关资料发现,修改其文件属性即可 ...