.ToString(“ N0”)在ubuntu服务器上不起作用,但在家用PC上起作用

时间:2019-06-13 15:50:28

标签: c# ubuntu .net-core

在Discord机器人上,我已在某些命令上使用ToString(“ N0”)函数将数字转换为1000至1000。当将我的机器人安装到我的新服务器ubuntu 19.04(旧服务器是18.04.2)上时,数字并没有放入逗号,而只是它们的样子。我以为ToString(“ N0”)可能坏了,所以我尝试使用string.Format,但它在服务器上也不起作用,但在我的家用PC上也可以。所以我想知道是否有一个我需要安装的软件包可能无法安装以解决此问题?

我尝试使用string.Format来代替,就像我提到的那样,我也尝试过更新软件包并重新启动服务器,然后重新运行bot,但这并不能解决问题。

embed.AddField(y =>
{
   y.Name = "Score";
   y.Value = $"{Convert.ToInt32(stats.GetValue("credit")).ToString("N0")}";
   y.IsInline = true;
});
embed.AddField(y =>
{
   y.Name = "Completed WUs";
   y.Value = $"{Convert.ToInt32(stats.GetValue("wus")).ToString("N0")}";
   y.IsInline = true;
});

例如,假设stats.GetValue(“ credit”)返回10000000时,应将其更改为10,000,000,但是在发送消息时embed字段将其设置为10000000,但在我的PC上它将添加逗号。

1 个答案:

答案 0 :(得分:0)

将文化信息设置为我在家用PC上使用的信息即可解决此问题。

embed.AddField(y =>
{
   y.Name = "Score";
   y.Value = $"{Convert.ToInt32(stats.GetValue("credit")).ToString("N0", CultureInfo.CreateSpecificCulture("en-GB"))}";
   y.IsInline = true;
});
embed.AddField(y =>
{
   y.Name = "Completed WUs";
   y.Value = $"{Convert.ToInt32(stats.GetValue("wus")).ToString("N0", CultureInfo.CreateSpecificCulture("en-GB"))}";
   y.IsInline = true;
});