| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * Copyright (c) 2012-2026 Daniele Bartolini et al.
- * SPDX-License-Identifier: GPL-3.0-or-later
- */
- namespace Crown
- {
- public static string print_max_decimals(double num, int max_decimals)
- {
- string formatted = "%.*f".printf(max_decimals, num);
- int len = formatted.length;
- if (max_decimals > 0) {
- // Trim trailing zeroes.
- while (len > 0 && formatted[len - 1] == '0')
- len--;
- // Remove trailing decimal point, if any.
- if (len > 0 && formatted[len - 1] == '.')
- len--;
- return formatted.substring(0, len);
- }
- // Strip the decimal point and anything after.
- int dot = formatted.index_of_char('.');
- return (dot >= 0) ? formatted.substring(0, dot) : formatted;
- }
- public static string camel_case(string str)
- {
- int len = str.length;
- GLib.StringBuilder sb = new GLib.StringBuilder.sized(len);
- bool capitalize = true;
- for (int i = 0; i < len; i++) {
- char c = str[i];
- if (c.isalnum()) {
- sb.append_c(capitalize ? c.toupper() : c.tolower());
- capitalize = false;
- } else {
- if (sb.len > 0 && sb.str[sb.len - 1] != ' ')
- sb.append_c(' ');
- capitalize = true;
- }
- }
- return sb.str;
- }
- } /* namespace Crown */
|