6

在 C# 中,有一种类型称为decimal(System.Decimal 结构)。我发现了一些信息,这些信息显示了它在某些情况下的优劣float和类型:double

Borland C++ Builder 程序有类似的类型吗?

4

3 回答 3

8

decimalC# 中的类型,.NET 的类型System.Decimal,只是一个浮点数,存储为 base-10,而不是 base-2 编码。float并且double是更典型的 base-2 浮点数。也就是说, adouble存储为 ,+/- x * 2^y而小数存储为+/- x * 10 ^ y。这就是为什么它在财务数据方面表现更好,例如,财务数据通常以x * 10^-2. IEEE 标准 754(浮点数学标准)称之为“十进制浮点”数学,并分别定义了 32 位和 64 位版本。

在 C++ 中,这些类型在命名空间中实现,并在标头std::decimal中调用std::decimal::decimal32and 。如果 Borland C++ builder 有这样的类型,你会在那里找到它。GNU 的 C++ 库包含这个头文件,但是,AFAIK 它实际上还不是标准的一部分,所以 BCB 可能没有它。如果是这种情况,您将需要使用第三方库。@dash 的英特尔十进制浮点库示例可能是最著名的此类库,但如果出于某种原因需要它们,谷歌搜索应该会出现其他库。std::decimal::decimal64<decimal>IEEE 754 Decimal

于 2012-06-20T00:36:38.237 回答
3

这些是您可以在 Delphi 中使用的浮点类型:

single  :  4 bytes (32bits)
real    :  6 bytes (48bits)
double  :  8 bytes (64bits)
currency:  8 bytes (64bits) (this is probably what you're looking for)
extended: 10 bytes (80bits) (maps to double when you compile to x64!)

在 C++ builder 中似乎有一个System::Currency类模仿 Delphi 的内置货币类型。也许这有助于调查。

于 2012-06-20T00:19:40.133 回答
2

我找到了这个链接Borland C++ Primitive Data types。在 HTML 中查看它。

有一个容量为 10 字节的 long double 类型。

该文件内容丰富。无论如何,您可能都想阅读它。

于 2012-06-20T00:42:16.833 回答