浮点类型名称与整型类型名称匹配?

我不得不说,当我打开c#查看整型数据类型为Int16,Int32 and Int64时,我很高兴。 它消除了任何模糊性,例如int随着年龄的增长而增大。

令我惊讶的是,为什么没有或似乎不是Float16,Float32 and Float64或者至少没有正常使用:MSDN的快速搜索指的是float64,因为R8(非托管类型)与这不是一样的双

我的猜测是,单倍和双倍(或者甚至是Extended(Float80))中不存在的含糊不清的东西,就我所知,我不确定这是怎么被整理的。)虽然Decimal似乎是Float128,我注意到它被称为“扩展浮点精度”,我们应该看到一个Int128匹配吗?
编辑:没有任何歧义在所有单或双(这是一个猜测,但它似乎是真实的,我想我会添加此清晰。)

我们是否应该看到这种命名惯例?/如果我们这样做,你会感激吗?

或者我们应该更进一步,让Int<N>具有任意数量的大小? (是的,我意识到有支持这种事情的图书馆)


那么,这里有很多不同的事情需要考虑:

  • .NET公开的类型
  • 有什么可用的
  • 什么类型被称为
  • 什么最终被其他语言别名,例如C#使用int来表示System.Int32
  • 就个人而言,我会首选Float32Float64作为CLR类型。 我当然可以在F#中看到一些混淆,指出类型“float”(用于System.Double )和“float32”(用于System.Single )。 我不希望Decimal被称为Float128 ; 可能Decimal128允许其他类似的类型。

    请注意Byte不是UInt8一句 - 大概是因为字节通常用于任意二进制存储,而不是真正的数字量。

    但我不认为有很多理由为Int<N>设置任意值。 至少,我怀疑这个用法是否足够专业化,以将其归入自定义类库而不是将其作为框架的一部分。 (但是请注意, BigInteger是.NET 4.0的一部分。)


    那么,它在C#中是浮动和双精度的,而不是单精度和双精度,但它们是相同的一般差异。 请记住,C#中的每个内置类型都有一个别名。 至于任意数量的大小,F#引入了BigInteger,应该注意这一点,但是指定整数可以容纳的合理数量的任意大小很可能是性能命中,因为内置类型都很精细调整到CLR的表现。

    此外,十进制不是IEEE意义上的浮点类型。 当然,这是一种高精度类型,允许浮点小数点,但在IEEE的意义上它不是“浮点类型”。 除了精度有限之外,它不会做浮动会做的奇怪事情(例如2x2 = 3.9999999999999),因此它经常用于财务计算。

    如果你真的在寻找能够让你大量使用数字的东西,那么你可能希望看到像F#这样的函数式语言,而不是C#。 无论如何,函数式语言通常更适合于大量数据处理......它们往往更简洁。

    至于命名约定...我从C#开始...... C#是我的标准,对我来说,其他语言也很奇怪。 我想,这一切都是从开发者的角度来看的。

    链接地址: http://www.djcxy.com/p/85313.html

    上一篇: floating type names matching integer type names?

    下一篇: Type Name aliasing in C#