我正在开发一些代码来在我的应用程序中将货币符号作为标签的一部分呈现,我有一个Unicode十六进制格式的货币符号参考列表.在我的代码中,我按如下方式格式化货币:
(货币符号)(十进制字符串)(货币说明)
这种方法适用于大多数符号,但是我注意到,即使明确放置在左侧,某些符号也会自动移动到十进制值的右侧.使用调试器,即使在字符串本身的最基本级别,我也会看到这种行为,因此这不是表示层中渲染在更高级别进行任何操作的情况.以下代码展示了演示问题的简单案例:
string rialSymbol = "\ufdfc";
string amount = "123.45";
string description = "Rials";
string plainConcat = rialSymbol + " " + amount + " " + description;
Debug.WriteLine(plainConcat);
Run Code Online (Sandbox Code Playgroud)
调试输出(也与应用程序UI中的内容相匹配)如下:
123.45(里亚尔符号)里亚尔
(注意:符号位于小数点右侧而不是左侧,如指定的那样)
我已经尝试了很多方法和各种字符串格式,文化格式等,但似乎没有解决这个问题.如何在不让框架决定相对于小数值的符号位置的情况下强制执行unicode字符的放置?这适用于大多数其他角色,为什么Rial(和其他一些)导致这种类型的基本字符串行为?