[英]How to correctly format text based on currency
在我的应用程序中,执行了将文本显示到GUI的计算。 应用程序将用户给定的数量乘以定义的数字(说0.85)以创建总数(用户类型为2,应用程序得出2 x 0.85)。
由于显示的数字是货币编号,因此我试图正确格式化文本以使其可读和正确。
到目前为止,我已经尝试过
.ToString("N2");
这只是导致在图的末尾附加了两个附加的零。
问题可以在这里看到:
如您所见,正确的值为.68(或£0.68),我的文字显示为£68.00,将“ N2”从ToString中取出确实有帮助,但我仍然剩下£68。
我知道这并不像听起来那么琐碎,但这是我以前从未想过的事情,这让我思考了很长时间。
谢谢!
注意:数据存储为双精度数据,以前是浮动数据,因此可以灵活地更改应用程序。 货币图标也不需要,因为我是手动提供的,只需要格式化即可。
尝试这个:
string.Format("{0:C}", money_value);
这也将起作用:
.ToString("C");
(我意识到这将包括货币符号,但操作员没有说这是一个问题,只是没有必要。)
如果您想全力以赴,可以这样做:
string.Format(ui_culture, “{0:C}”, money_value);
其中ui_culture
是与货币关联的文化。
编辑添加:
这种格式的好处是它可以管理所有标点符号。
我不确定货币符号是否始终是主角。 如果是这样,您可以将其删除:
string.Format(ui_culture, “{0:C}”, money_value).substring(1);
乍一看,您似乎已将值(0.68)乘以100得到68.00,这是正确的。 但是,您的数量似乎是80,应该为您提供54.40的值。
如果乘以2,则应该得到1.70。
您将需要使用带有IFormatProvider参数的ToString重载:
double value = 80;
string ukCurrency = value.ToString("N2", CultureInfo.CreateSpecificCulture("en-GB"));
我实际上不确定是否会包含货币字符(未经测试的示例)。 我希望使用“ N2”格式的字符串会去除货币字符……但可能不会。 跳过字符串的第一个字符可能很容易:
ukCurrency = ukCurrency.Substring(1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.