在C#中,有一个名为decimal的类型(System.Decimal结构).我找到的信息显示它在某些情况下比float和double类型更好:
> StackOverflow – double-precision-problems-on-net
> StackOverflow – how-to-make-doubles-work-properly-c-sharp
Borland C Builder程序有类似的类型吗?
解决方法
C#,.NET的System.Decimal类型中的十进制类型只是一个存储为base-10而不是base-2编码的浮点数. float和double是更典型的base-2浮点数.也就是说,double存储为/ – x * 2 ^ y,而小数存储为/ – x * 10 ^ y.这就是为什么它作为一个例子更好地用于财务数据,其通常用x * 10 ^ -2表示. IEEE标准754(浮点数学标准)称这个“十进制浮点”数学,并定义每个的32位和64位版本.
在C中,这些类型在std :: decimal命名空间中实现,在< decimal>中被称为std :: decimal :: decimal32和std :: decimal :: decimal64.头.如果Borland C builder有这样的类型,你会在那里找到它. GNU的C库包含这个标题但是,AFAIK它实际上并不是标准的一部分,因此BCB可能没有它.如果是这种情况,您将需要使用第三方库. @ dash的英特尔Decimal Floating Point库的例子可能是最知名的这样的库,尽管谷歌搜索IEEE 754 Decimal应该会因为某些原因你需要它们而找到其他库.