mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
plug min-digits view rule into f32/f64 value string visualization path; also expand default precision of f32/f64 string visualization, but truncate redundant zeroes
This commit is contained in:
@@ -1490,6 +1490,7 @@ ev_string_from_simple_typed_eval(Arena *arena, EV_StringFlags flags, U32 radix,
|
|||||||
{
|
{
|
||||||
digit_group_separator = 0;
|
digit_group_separator = 0;
|
||||||
}
|
}
|
||||||
|
F64 f64 = 0;
|
||||||
switch(type_kind)
|
switch(type_kind)
|
||||||
{
|
{
|
||||||
default:{}break;
|
default:{}break;
|
||||||
@@ -1584,8 +1585,26 @@ ev_string_from_simple_typed_eval(Arena *arena, EV_StringFlags flags, U32 radix,
|
|||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
case E_TypeKind_F32: {result = push_str8f(arena, "%f", eval.value.f32);}break;
|
case E_TypeKind_F32:{f64 = (F64)eval.value.f32;}goto f64_path;
|
||||||
case E_TypeKind_F64: {result = push_str8f(arena, "%f", eval.value.f64);}break;
|
case E_TypeKind_F64:{f64 = eval.value.f64;}goto f64_path;
|
||||||
|
f64_path:;
|
||||||
|
{
|
||||||
|
result = push_str8f(arena, "%.*f", min_digits ? min_digits : 16, f64);
|
||||||
|
U64 num_to_chop = 0;
|
||||||
|
for(U64 num_trimmed = 0; num_trimmed < result.size; num_trimmed += 1)
|
||||||
|
{
|
||||||
|
if(result.str[result.size - 1 - num_trimmed] != '0')
|
||||||
|
{
|
||||||
|
if(result.str[result.size - 1 - num_trimmed] == '.' && num_to_chop > 0)
|
||||||
|
{
|
||||||
|
num_to_chop -= 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
num_to_chop += 1;
|
||||||
|
}
|
||||||
|
result = str8_chop(result, num_to_chop);
|
||||||
|
}break;
|
||||||
case E_TypeKind_Bool:{result = push_str8f(arena, "%s", eval.value.u64 ? "true" : "false");}break;
|
case E_TypeKind_Bool:{result = push_str8f(arena, "%s", eval.value.u64 ? "true" : "false");}break;
|
||||||
case E_TypeKind_Ptr: {result = push_str8f(arena, "0x%I64x", eval.value.u64);}break;
|
case E_TypeKind_Ptr: {result = push_str8f(arena, "0x%I64x", eval.value.u64);}break;
|
||||||
case E_TypeKind_LRef:{result = push_str8f(arena, "0x%I64x", eval.value.u64);}break;
|
case E_TypeKind_LRef:{result = push_str8f(arena, "0x%I64x", eval.value.u64);}break;
|
||||||
|
|||||||
Reference in New Issue
Block a user