我目前正在开发一个程序,它以文本文件的形式获取Visual Basic数据,然后将这些数据存储在C ++中。 Visual Basic中的一些数据是Decimal类型。 C ++没有等效于十进制的内置类型。我不想使用double,因为如果数字足够大,可能会丢失有效数字。
一个选项是编写我自己的十进制类。我想知道在我试图解决这个问题之前是否还有其他替代方案。
谢谢你的帮助。
答案 0 :(得分:0)
有decNumber库。这是一个C库,设计用于十进制数而不会丢失精度/准确度。
鉴于它是一个C库,你应该能够轻松地将它包装在C ++类中,或者只是直接使用C函数
这是IBM赞助的lib,它可以在开源许可证(ICU)下获得
答案 1 :(得分:0)
在我看来,使用Decimal
类是最好的解决方案。至于编写自己的实现,首先尝试一个简短的网络研究:似乎其他人之前有同样的问题。第一个Google结果显示CodeProject solution,可能还有很多其他结果......