首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

项目中数据类型的移植有关问题,求好的方案

2013-03-20 
项目中数据类型的移植问题,求好的方案之前整个项目代码对于金额变量的定义运算全部为long型。在我的系统中l

项目中数据类型的移植问题,求好的方案

之前整个项目代码对于金额变量的定义运算全部为long型。
在我的系统中long为4bytes 范围-2147483648 ----- 2147483647。

但是现在需要支持到金额最大9999999999 (10位)

Long明显不够用了,目前需要改代码结构以支持10位最大金额。

有没有什么好的解决方案来实现呢?

目前方案一,该所有以前的定义为double, 数据支持没有问题,但是以前的代码金额为整形,有很多地方判断为 lnAmt > 0 或者lnAmt == 0
对于double 存在精度问题,不能简单和0比较, 只能写区间 【0, 0.1】,这样所有的判断条件全部要改。

方案二,把所有long改成 String,string加减没问题,但是问题是以前所有的 atol , string2long 的函数全部要换, 那些金额条件判断,赋值也全部要变。

说来说去,就是不管哪个方案整个代码都改到完了。。。。

有没有其他方案可以简单修改,不用影响到整个结构?改动不大的?

long类型 string类型 double类型
[解决办法]
long long
[解决办法]
如果是C++的话,那么可以用封装成class,然后借助运算符重载实现简单替换。
[解决办法]
1, 使用大数,不要自己实现,费时费力而且容易出错:https://mattmccutchen.net/bigint/或其他
2, 调整单位就可以了,比如以billion为单位, 9 for 9 billion
[解决办法]
这个数字有必要使用大数吗

热点排行