【发布时间】:2020-02-18 10:53:03
【问题描述】:
所以我将使用 realmdb 创建一个应用程序 - 领域目前还不支持十进制数据类型,所以我一直在寻找一个等价物。如果你可以想象对象 1 返回 50,对象 2 返回 50,对象 3 返回 12 = 112,但在 30% 之后它应该返回 78.40 英镑 - 现在它返回 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)));
【问题讨论】:
-
这能回答你的问题吗? How to format string to money
-
你应该看看 C# 中的字符串格式,例如:
yourfloat.ToString("0.00") -
如果 realmdb 没有小数,那么我认为最好将其保存为表示美分或其他内容的整数,但将代码保留为小数。对货币使用浮点数会带来很多问题。
-
@Innat3 愚蠢的问题 - 如果它是一个字符串对象,或者我只需要声明我在求和之前将其转换回来,我怎么能在稍后使用该数字进行计算?
-
@BlairGibson 您只需使用
.ToString()将数字显示为所需格式的字符串。您可以继续使用原始浮动进行操作,并在需要再次显示时使用.ToString()