Custom float-printing function.

This commit is contained in:
Bartosz Taudul 2020-01-31 01:19:08 +01:00
parent 8d5f4d7363
commit 36fb1f96e2
2 changed files with 13 additions and 6 deletions

View File

@ -280,29 +280,28 @@ const char* MemSizeToString( int64_t val )
};
Unit unit;
char* ptr;
if( aval < 10000ll * 1024 )
{
sprintf( buf, "%.2f", val / 1024. );
ptr = PrintFloat( buf, buf+64, val / 1024., 2 );
unit = Unit::Kilobyte;
}
else if( aval < 10000ll * 1024 * 1024 )
{
sprintf( buf, "%.2f", val / ( 1024. * 1024 ) );
ptr = PrintFloat( buf, buf+64, val / ( 1024. * 1024 ), 2 );
unit = Unit::Megabyte;
}
else if( aval < 10000ll * 1024 * 1024 * 1024 )
{
sprintf( buf, "%.2f", val / ( 1024. * 1024 * 1024 ) );
ptr = PrintFloat( buf, buf+64, val / ( 1024. * 1024 * 1024 ), 2 );
unit = Unit::Gigabyte;
}
else
{
sprintf( buf, "%.2f", val / ( 1024. * 1024 * 1024 * 1024 ) );
ptr = PrintFloat( buf, buf+64, val / ( 1024. * 1024 * 1024 * 1024 ), 2 );
unit = Unit::Terabyte;
}
auto ptr = buf;
while( *ptr ) ptr++;
ptr--;
while( ptr >= buf && *ptr == '0' ) ptr--;
if( *ptr != '.' ) ptr++;

View File

@ -1,9 +1,17 @@
#ifndef __TRACYPRINT_HPP__
#define __TRACYPRINT_HPP__
#include <stdio.h>
namespace tracy
{
template<typename T>
static inline char* PrintFloat( char* begin, char* end, T value, int precision )
{
return begin + sprintf( begin, "%.*f", precision, value );
}
const char* TimeToString( int64_t ns );
const char* RealToString( double val, bool separator );
const char* MemSizeToString( int64_t val );