繁体   English   中英

为什么1000000不等于1000000.toString(“ N”,新的CultureInfo(“ fr-FR”))

[英]Why is 1 000 000 not equal to 1000000.toString(“N”, new CultureInfo(“fr-FR”))

我围绕字符串转换和货币编写了一些单元测试。

给定CultureInfo方法已通过,我正在测试是否以期望的格式返回字符串。

 public string GetOverspendAmount(double _amount, CultureInfo cultureInfo)
 {
    return amount.ToString("N", cultureInfo);
 }

我正在通过以下调用对这部分代码进行单元测试-

double amount = 1000000;
CultureInfo ci = new CultureInfo("fr-FR", false);

GetOverspendAmount(amount, ci).Should().Be("1 000 000");

但测试失败。 预期外观与实际外观相同,但将其放入ascii转换器后,将显示以下结果

Expected - 1 000 000
49 32 48 48 48 32 48 48 48

Actual - 1 000 000
049 194 160 048 048 048 194 160 048 048 048

它们不是普通空间,但我想知道它们是什么,为什么它们不只是普通空间?

该空间是不间断空间(UTF-8 194 160),而不是常规空间(UTF-8 32)。

https://utf8-chartable.de/unicode-utf8-table.pl?utf8=dec

不间断空格在HTML之类的格式中有所作为,因为它不允许自动换行。 它还不允许多个空间折叠成一个空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM