1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-26 16:12:54 +08:00

Add FormatUtils.FormatAccuracy and usages

This commit is contained in:
recapitalverb 2020-02-04 11:17:23 +07:00
parent ddf9317bec
commit a8ce50fadd
3 changed files with 25 additions and 2 deletions

View File

@ -13,6 +13,7 @@ using osu.Game.Rulesets;
using osu.Game.Rulesets.Mods;
using osu.Game.Rulesets.Scoring;
using osu.Game.Users;
using osu.Game.Utils;
namespace osu.Game.Scoring
{
@ -32,7 +33,7 @@ namespace osu.Game.Scoring
public double Accuracy { get; set; }
[JsonIgnore]
public string DisplayAccuracy => Accuracy == 1 ? "100%" : $"{Accuracy:0.00%}";
public string DisplayAccuracy => Accuracy.FormatAccuracy();
[JsonProperty(@"pp")]
public double? PP { get; set; }

View File

@ -5,6 +5,7 @@ using System;
using Newtonsoft.Json;
using osu.Game.Scoring;
using static osu.Game.Users.User;
using osu.Game.Utils;
namespace osu.Game.Users
{
@ -44,7 +45,7 @@ namespace osu.Game.Users
public decimal Accuracy;
[JsonIgnore]
public string DisplayAccuracy => $"{Accuracy:0.00%}";
public string DisplayAccuracy => Accuracy.FormatAccuracy();
[JsonProperty(@"play_count")]
public int PlayCount;

View File

@ -0,0 +1,21 @@
namespace osu.Game.Utils
{
public static class FormatUtils
{
/// <summary>
/// Turns the provided accuracy into a percentage with 2 decimal places.
/// Omits all decimal places when <paramref name="accuracy"/> equals 1d.
/// </summary>
/// <param name="accuracy">The accuracy to be formatted</param>
/// <returns>formatted accuracy in percentage</returns>
public static string FormatAccuracy(this double accuracy) => accuracy == 1 ? "100%" : $"{accuracy:0.00%}";
/// <summary>
/// Turns the provided accuracy into a percentage with 2 decimal places.
/// Omits all decimal places when <paramref name="accuracy"/> equals 100m.
/// </summary>
/// <param name="accuracy">The accuracy to be formatted</param>
/// <returns>formatted accuracy in percentage</returns>
public static string FormatAccuracy(this decimal accuracy) => accuracy == 100 ? "100%" : $"{accuracy:0.00}%";
}
}