【发布时间】:2017-09-08 05:08:54
【问题描述】:
我正在尝试使用 NUnit 对 getprice 方法进行单元测试。我坚持将 rawprice 解析为双倍。我的cultureinfo 是en-US,但我将它设置为de-DE 以进行此测试。使用 numberstyles.any 和 invariantculture 进行双重解析会返回意外结果。
原始价格文化信息是未知的,它可以是任何。此外,它将运行的服务器也是未知的,可以是任何语言。
对于这个测试,我尝试了德语的 rawprice 和 machine。
我尝试解析"9,42",但结果是942。
[Test]
[SetCulture("de-DE")]
public void GetPrice_PriceTextWithCommaDecimal_ReturnsInvariantPrice()
{
var rawPriceText = "9,42";
double.TryParse(rawPriceText, NumberStyles.Any, CultureInfo.InvariantCulture, out double price);
//parsed price result is 942
...
}
【问题讨论】:
标签: c# .net parsing double culture