fixed float printing errors
This commit is contained in:
parent
8b5db6c23f
commit
c5e1a42eb7
@ -68,6 +68,9 @@ char* toString_uint(uint64 n, bool withPostfix, bool uppercase){
|
||||
if(precision==0)\
|
||||
precision=toString_float_default_precision;\
|
||||
int cn=sprintf(str, "%.*f", precision, n);\
|
||||
/* remove trailing zeroes except .0*/\
|
||||
while(str[cn-1]=='0' && str[cn-2]!='.')\
|
||||
cn--;\
|
||||
if(withPostfix)\
|
||||
str[cn++]= uppercase ? 'F' : 'f';\
|
||||
str[cn]='\0';\
|
||||
|
||||
@ -20,7 +20,14 @@ typedef union {
|
||||
float64 f64;
|
||||
void* ptr;
|
||||
} __kp_value_union;
|
||||
#define __kpVU(value) (__kp_value_union){ value }
|
||||
|
||||
|
||||
static inline __kp_value_union __kpVU_f(float64 f) { return (__kp_value_union){ .f64=f }; }
|
||||
inline __kp_value_union __kpVU_i(int64 f) { return (__kp_value_union){ .i64=f }; }
|
||||
|
||||
#define __kpVU_selectType(V) _Generic(V, float: __kpVU_f, double: __kpVU_f, default: __kpVU_i)(V)
|
||||
|
||||
#define __kpVU(V) __kpVU_selectType(V)
|
||||
|
||||
#define __kp_argsToFmts8(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7,...)\
|
||||
|
||||
@ -10,19 +10,19 @@ void test_kprint(){
|
||||
kp_u|kp_post,-8888, kp_c|kp_post|kp_upper,' ', kp_u,0, kp_c,' ',
|
||||
kp_u,1234567890987654321LL, kp_c,'\n');
|
||||
//float
|
||||
kprint(kp_bgGreenD|kp_fgRed|
|
||||
kprint(kp_fgCyanD|
|
||||
kp_f,-4000.0109f, kp_c,' ', kp_f,-0.000020004f, kp_c,'\n',
|
||||
kp_f,-1.0f, kp_c,' ', kp_f,0.0f, kp_c,' ', kp_f,1.0f, kp_c,'\n',
|
||||
kp_f|kp_post,0.000020004f, kp_c,' ',
|
||||
kp_f|kp_post|kp_upper,4000.0109f, kp_c,'\n');
|
||||
//double
|
||||
kprint(kp_bgBlueD|kp_fgRed|
|
||||
kprint(kp_fgYellowD|
|
||||
kp_f,-4000.0109, kp_c,' ', kp_f,-0.000020004, kp_c,'\n',
|
||||
kp_f,-1.0, kp_c,' ', kp_f,0.0, kp_c,' ', kp_f,1.0, kp_c,'\n',
|
||||
kp_f|kp_post,0.000020004, kp_c,' ',
|
||||
kp_f|kp_post|kp_upper,4000.0109, kp_c,'\n');
|
||||
//hex
|
||||
kprint(kp_bgBlack|kp_fgYellow|
|
||||
kprint(kp_fgYellow|
|
||||
kp_h,0, kp_c,' ', kp_h,1, kp_c,' ', kp_h,-1, kp_c,' ', kp_h,15, kp_c,'\n',
|
||||
kp_h,4095, kp_c,' ', kp_h,-4095, kp_c,'\n',
|
||||
kp_h,1234567890987654321LL, kp_c,'\n', kp_h,-1234567890987654321LL, kp_c,'\n');
|
||||
@ -34,12 +34,12 @@ void test_kprint(){
|
||||
kp_h|kp_pre|kp_upper,-115515.009, kp_c,'\n');
|
||||
//bin
|
||||
kprint(kp_fgBlue|
|
||||
kp_b,0, kp_c,' ', kp_b,1, kp_c,' ', kp_b,-1, kp_c,' ', kp_b,15, kp_c,' ',
|
||||
kp_b,4095, kp_c,' ', kp_b,-4095, kp_c,'\n',
|
||||
kp_b,0, kp_c,'\n', kp_b,1, kp_c,'\n', kp_b,-1, kp_c,'\n', kp_b,15, kp_c,'\n',
|
||||
kp_b,4095, kp_c,'\n', kp_b,-4095, kp_c,'\n',
|
||||
kp_b,1234567890987654321LL, kp_c,'\n', kp_b,-1234567890987654321LL, kp_c,'\n');
|
||||
kprint(
|
||||
kp_b,-1.0f, kp_c,' ', kp_b,0.0f, kp_c,' ', kp_b,1.0f, kp_c,'\n',
|
||||
kp_b, 0.00016f, kp_c,' ', kp_b,-115515.009f, kp_c,'\n');
|
||||
kp_b,-1.0f, kp_c,'\n', kp_b,0.0f, kp_c,'\n', kp_b,1.0f, kp_c,'\n',
|
||||
kp_b, 0.00016f, kp_c,'\n', kp_b,-115515.009f, kp_c,'\n');
|
||||
kprint(
|
||||
kp_b|kp_pre, 0.00016, kp_c,'\n',
|
||||
kp_b|kp_pre|kp_upper,-115515.009, kp_c,'\n');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user