我不确定这是否是处理它的好方法,但我在我的项目中使用了以下内容。
对于每个项目,我有一个“double theRelevantNumber”变量和一个“int PowerOfTen”,在我的相关类中,我有一个“int relatedDecimals”变量。
所以......当遇到大量时,它们的处理方式如下:
首先将它们更改为 x,yyy 形式。因此,如果输入数字 123456,789 并且“powerOfTen”为 10,它将像这样开始:
theRelevantNumber = 123456,789 PowerOfTen = 10 当时的数字是:123456,789*10^10
然后改为:1,23456789*10^15
然后按相关小数位数(例如 5)四舍五入为 1,23456,然后与“PowerOfTen = 15”一起保存
将数字相加或相减时,相关小数之外的任何数字都将被忽略。意思是如果你采取:
1*10^15 + 1*10^10 如果“relevantDecimals”为 5,它将变为 1,00001,但如果“relevantDecimals”为 4,则根本不会改变。
这种方法使您能够毫无问题地处理 doubleLimit*10^intLimit 上的数字,并且至少对于 OOP 而言,跟踪起来并不难。