diff --git a/UnityPerformanceBenchmarkReporter/ExtensionMethods.cs b/UnityPerformanceBenchmarkReporter/ExtensionMethods.cs index 20a515a..37a73fc 100644 --- a/UnityPerformanceBenchmarkReporter/ExtensionMethods.cs +++ b/UnityPerformanceBenchmarkReporter/ExtensionMethods.cs @@ -1,35 +1,29 @@ -using System; +using System; using System.Globalization; namespace UnityPerformanceBenchmarkReporter { public static class ExtensionMethods { - public static double TruncToSigFig(this double d, uint digits) + public static double TruncToSigFig(this double value, uint digits) { - double truncated; - - if(d == 0) + if (value == 0) { - truncated = 0; + return 0; } - else + + var valueStr = Convert.ToString(value, CultureInfo.InvariantCulture); + var parts = valueStr.Split('.'); + if (parts.Length <= 1 || parts[1].Length <= digits) { - var s = Convert.ToString(d, CultureInfo.InvariantCulture); - var parts = s.Split('.'); - if (parts.Length <= 1 || parts[1].Length <= digits) - { - truncated = d; - } - else - { - var newSigDigits = parts[1].Substring(0, (int) digits); - var truncString = string.Format("{0}.{1}", parts[0], newSigDigits); - truncated = Convert.ToDouble(truncString); - } + return value; } - return truncated; + var truncString = digits == 0 + ? parts[0] + : $"{parts[0]}.{parts[1][..(int) digits]}"; + + return Convert.ToDouble(truncString, CultureInfo.InvariantCulture); } } }