【发布时间】:2013-06-05 04:35:08
【问题描述】:
正如标题所述,我想将一个多位数的 double 拆分为多个部分,每个部分包含 4 个数字。
我已经将双精度数四舍五入到最接近的整数,所以没有小数部分,剩下的是一个非常长的双精度数,远远超过最大的长长整数。
我需要将整数部分拆分为几个 4 位数字部分,对于整数来说这很简单,这样的 while 语句就可以了:
unsigned long long int IntegerWithSeveralParts;
unsigned short int i = 0;
unsigned int Parts[10];
while ( IntegerWithSeveralParts )
{
Parts[i] = IntegerWithSeveralParts % 10000;
IntegerWithSeveralParts /= 10000;
++ i;
}
是的,我知道这些部分的顺序是相反的,但是向量可以解决这个问题。问题是,我不能对浮点数和双精度数执行模块化,这对我来说意义重大。我可以将它们转换为字符串,然后从中进行拆分,但这非常耗时,因为这将包括流的使用。
还有其他办法吗?
【问题讨论】: