diff --git a/src/program.odin b/src/program.odin index 27b677f..d7cc1ee 100644 --- a/src/program.odin +++ b/src/program.odin @@ -674,15 +674,11 @@ write_matrix_to_values_and_value_strings :: proc(values: []f32, value_strings: [ } write_float_to_buffer :: proc(buffer: []byte, value: f32) { - fraction := fract(value) - if fraction == 0.0 { - fmt.bprintf(buffer, "%.0f", value) - } else if fract(fraction * 10.0) == 0.0 { - fmt.bprintf(buffer, "%.1f", value) - } else if fract(fraction * 100.0) == 0.0 { - fmt.bprintf(buffer, "%.2f", value) - } else { - fmt.bprintf(buffer, "%.3f", value) + switch { + case fract(value) == 0.0: fmt.bprintf(buffer, "%.0f", value) + case fract(value * 10.0) == 0.0: fmt.bprintf(buffer, "%.1f", value) + case fract(value * 100.0) == 0.0: fmt.bprintf(buffer, "%.2f", value) + case: fmt.bprintf(buffer, "%.3f", value) } }