摘自我的代码:
for $SS ( 0 .. scalar @TAB_SS - 1 ) {
print Dumper ( "av", $CUMUL, $PCTVOLTMP, $TAB_SS[$SS][1] );
$CUMUL = $CUMUL + $TAB_SS[$SS][1];
print Dumper ( "ap", $CUMUL, $PCTVOLTMP );
if ( $CUMUL >= $PCTVOLTMP ) {
Calcul_Date( $TAB_SS[$SS][0] );
$DATE = "$Auj_j/$Auj_m/$Auj_4a";
$HEURE = "$H:$MI:$S";
printf(
"%3d%-25s%8s%3s%8s\n",
$PCTTMP, " % en volume atteints le ",
$DATE, " à ", $HEURE );
$PCTVOLTMP = $PCTVOLTMP + $PCTVOL;
print Dumper ( "Prochaine étape ", $PCTVOLTMP );
$PCTTMP = $PCTTMP + $PCT;
}
}
printf( "Volume total sauvé : %6.2f GB\n", $TAILLC / 1000000000 );
由于我无法找到的原因,有时(可重复地)程序没有按预期进入测试打印数据,尽管测试的值相等。
放一些印刷品寻找奇怪的东西,但没办法...
以下是工作时显示的内容(此处仅显示最后一行):
$VAR1 = 'av';
$VAR2 = '4722181648752';
$VAR3 = '4770868299648';
$VAR4 = 92984872;
$VAR1 = 'ap';
$VAR2 = '4722274633624';
$VAR3 = '4770868299648';
$VAR1 = 'av';
$VAR2 = '4722274633624';
$VAR3 = '4770868299648';
$VAR4 = '46893768708';
$VAR1 = 'ap';
$VAR2 = '4769168402332';
$VAR3 = '4770868299648';
$VAR1 = 'av';
$VAR2 = '4769168402332';
$VAR3 = '4770868299648';
$VAR4 = 1699897316;
$VAR1 = 'ap';
$VAR2 = '4770868299648';
$VAR3 = '4770868299648';
100 % en volume atteints le 24/05/2016 à 07:15:40
$VAR1 = 'Prochaine étape ';
$VAR2 = '5247955129612.8';
Volume total sauvé : 4770.87 GB
当不工作时:
$VAR1 = 'av';
$VAR2 = '4325103606080';
$VAR3 = '4337435336392';
$VAR4 = 1119865540;
$VAR1 = 'ap';
$VAR2 = '4326223471620';
$VAR3 = '4337435336392';
$VAR1 = 'av';
$VAR2 = '4326223471620';
$VAR3 = '4337435336392';
$VAR4 = '11122370688';
$VAR1 = 'ap';
$VAR2 = '4337345842308';
$VAR3 = '4337435336392';
$VAR1 = 'av';
$VAR2 = '4337345842308';
$VAR3 = '4337435336392';
$VAR4 = 89494084;
$VAR1 = 'ap';
$VAR2 = '4337435336392';
$VAR3 = '4337435336392';
Volume total sauvé : 4337.44 GB
任何帮助/线索都将非常感激......
答案 0 :(得分:0)
use bignum
允许我使用大整数值。 但作为“附带效应”,将所有值转换为float(?),从而在操作
使用的对象时产生错误结果Date::Calc
所以,使用了
use POSIX
将这些数据细化。