首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么1000 000不等于1000000. to (“N”,new CultureInfo("fr-FR"))

为什么1000 000不等于1000000. to (“N”,new CultureInfo("fr-FR"))
EN

Stack Overflow用户
提问于 2019-09-05 14:19:27
回答 1查看 86关注 0票数 2

我编写了一些关于字符串转换和货币的单元测试。

我正在测试字符串是否以我所期望的格式返回,因为CultureInfo传递了该方法。

代码语言:javascript
运行
复制
 public string GetOverspendAmount(double _amount, CultureInfo cultureInfo)
 {
    return amount.ToString("N", cultureInfo);
 }

我正在用下面的调用测试这段代码-

代码语言:javascript
运行
复制
double amount = 1000000;
CultureInfo ci = new CultureInfo("fr-FR", false);

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

但测试失败了。预期的和实际的看起来是相同的,但是当放入ascii转换器时,如下所示

代码语言:javascript
运行
复制
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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-05 14:26:04

空间是不间断的空间(UTF-8 194 160),而不是规则空间(UTF-8 32).

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

不中断空间在HTML格式上有很大的不同,因为它不允许在它之后自动中断行。它也不允许多个空格折叠成一个单独的空间。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57807549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档