We have to compare Harbour and xHarbour source code on:
BOOL hb_itemStrBuf( char * szResult, PHB_ITEM pNumber, int iSize, int iDec )
as xHarbour reports the number is NOT finite and thus the "*":
function Main()
Test( 2032212 / 30 * 30, 50, 2 )
return nil
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
#include <hbapiitm.h>
#include <stdio.h>
#define HB_FINITE_DBL( d ) ( _finite( d ) != 0 )
HB_FUNC( TEST )
{
PHB_ITEM pNumber = hb_param( 1, HB_IT_DOUBLE );
char buffer[ 100 ];
OutputDebugString( hb_itemStr( hb_param( 1, HB_IT_DOUBLE ),
hb_param( 2, HB_IT_NUMERIC ), hb_param( 3, HB_IT_NUMERIC ) ) );
sprintf (buffer, "%i", (int) pNumber->item.asDouble.length );
OutputDebugString( buffer );
if( HB_FINITE_DBL( hb_parnd( 1 ) ) )
OutputDebugString( "Finite" );
else
OutputDebugString( "Not finite" );
}
#pragma ENDDUMP