浮点类型名称与整型类型名称匹配?
我不得不说,当我打开c#查看整型数据类型为Int16,Int32 and Int64
时,我很高兴。 它消除了任何模糊性,例如int随着年龄的增长而增大。
令我惊讶的是,为什么没有或似乎不是Float16,Float32 and Float64
或者至少没有正常使用:MSDN的快速搜索指的是float64,因为R8(非托管类型)与这不是一样的双
我的猜测是,单倍和双倍(或者甚至是Extended(Float80))中不存在的含糊不清的东西,就我所知,我不确定这是怎么被整理的。)虽然Decimal似乎是Float128,我注意到它被称为“扩展浮点精度”,我们应该看到一个Int128匹配吗?
编辑:没有任何歧义在所有单或双(这是一个猜测,但它似乎是真实的,我想我会添加此清晰。)
我们是否应该看到这种命名惯例?/如果我们这样做,你会感激吗?
或者我们应该更进一步,让Int<N>
具有任意数量的大小? (是的,我意识到有支持这种事情的图书馆)
那么,这里有很多不同的事情需要考虑:
int
来表示System.Int32
就个人而言,我会首选Float32
和Float64
作为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