簡體   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