在 C# 中使用 float 的货币格式

Money format using float in c#

所以我将使用 realmdb 创建一个应用程序——realm 目前还不支持十进制数据类型,所以我一直在寻找等效的。如果你能想象对象 1 returns 50,对象 2 returns 50 & 对象 3 returns 12 = 112 但在 30% 之后它应该 return £78.40 - 正确现在 return £78.4

下面是我当前的代码。

        Console.WriteLine("Object Costs");
        float ObjectOne = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Object 2 Costs");
        float ObjectTwo = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Object 3 Costs");
        float ObjectThree = Convert.ToInt32(Console.ReadLine());

        float Total = ObjectOne + ObjectTwo + ObjectThree;


        Console.WriteLine("Total: " + NewLine + "£" + Total);

        Console.WriteLine("DISCOUNTED - 30% OFF!!!");



        Console.WriteLine(NewLine + "Final Total: " + "£" + (Total - Math.Round((Total / 100 * 30), 2, MidpointRounding.AwayFromZero)));

您可以使用 ToString("0.00");

格式化浮点值
var discountedRate = (Total - Math.Round((Total / 100 * 30), 2, MidpointRounding.AwayFromZero)).ToString("0.00");

Console.WriteLine($"Final Total:£ {discountedRate}");

Try it online


请注意: 如果您要处理金钱,请使用 decimal 而不是 float

来自 MSDN:

The decimal type has more precision and a smaller range than both float and double, it's appropriate for financial and monetary calculations.