gpt4 book ai didi

c# - 为什么 1 000 000 不等于 1000000.toString ("N", new CultureInfo ("fr-FR"))

转载 作者:行者123 更新时间:2023-11-30 20:15:01 26 4
gpt4 key购买 nike

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

我正在测试字符串是否以我期望的格式返回,给定 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 等格式中有所不同,因为它不允许在它之后自动换行。它还不允许多个空间折叠成一个空间。

关于c# - 为什么 1 000 000 不等于 1000000.toString ("N", new CultureInfo ("fr-FR")),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com