C# 舍入并转换为单位

C# Round and Convert to units

我的功能没有按预期运行..

        static string FormatWeight(double value)
        {
            if (value > 10000000) return (value / 10000000D).ToString("0.#### t");
            if (value > 100000) return (value / 100000D).ToString("0.#### kg");
            if (value > 1000) return (value / 1000D).ToString("0.#### g");
            return value.ToString("0.#### mg");
        }

给出的值 - 来自数据库 - 是 13190.1(KG) 它确实显示作为毫克,它应该显示为吨 (14.5T) 的四舍五入值。我们如何解决问题?希望我的问题是可以理解的。

您的函数的基本单位是毫克,您从数据库中收到公斤。您需要更改函数以将其基本单位设置为公斤。

static string FormatWeightKg(double value)
    {
        if (value > 1000) return (value / 1000D).ToString("0.#### t");
        if (value > 1) return value.ToString("0.#### kg");
        if (value >= 0.0001) return (value*1000D).ToString("0.#### g");
        return (value*1000000D).ToString("0.#### mg");
    }