int.ToString(CultureInfo.InvariantCulture)是否必要?

时间:2015-02-27 19:22:05

标签: c#

是否存在不使用短划线( - )表示负数的文化?

如果我不必处理负数,那么int.ToString()会在所有文化中产生相同的数字串吗?

我有一段代码与int.ToString(CultureInfo.InvariantCulture),我想确保我可以简化它并删除InvariantCulture参数。

2 个答案:

答案 0 :(得分:3)

您不仅应该考虑文化,还应该考虑将Windows区域设置设置为具有奇怪的负号或其他参数的人。

是的,您可以实际设置:

Windows 8.1 regional settings dialog

我猜(几乎)没有人设置这个,但比抱歉更安全。此外,我不认为你不必处理否定。有一天你会,然后这个代码仍然有效。强大的编码比假设更好。

答案 1 :(得分:0)

有些文化会把它放在括号中。此外,根据您从左到右或从右到左书写的文化,短划线可以位于数字的另一侧。因此,对于负数,您正在研究至少三种可能的格式

  • -123
  • 123 -
  • (123)

请查看MSDN了解详情。

即使您没有使用负数,您的结果仍会受小数点分隔符的影响。根据文化,它可以是昏迷,或点.。所以123456789可以有两种形式:

  • 123.456.789
  • 123456789