c# - 将丹麦语双精度转换为带有多个“。”的字符串 分隔符 [千]
问题描述
我正在尝试将string
格式中的数字转换为double
. 它可以是英国文化或丹麦文化。这是我正在尝试的代码
public static double ToDoubleOrDefault(this string value)
{
var doubleValue = default(double);
var danishCultureInfo = new CultureInfo("da-DK");
var englishCultureInfo = new CultureInfo("en-US");
if (double.TryParse(value,
NumberStyles.AllowDecimalPoint,
englishCultureInfo,
out doubleValue))
{
return doubleValue;
}
else if (double.TryParse(value,
NumberStyles.AllowDecimalPoint,
danishCultureInfo,
out doubleValue))
{
return doubleValue;
}
return doubleValue;
}
如果直到丹麦号码有多个 "."
分隔符,它就可以正常工作。
例如:“1.908.746”
有没有办法可以做到?
解决方案
我建议添加NumberStyles.AllowThousands
public static double ToDoubleOrDefault(this string value) {
var doubleValue = default(double);
// We don't have to create new instances (new CultureInfo()...)
var danishCultureInfo = CultureInfo.GetCultureInfo("da-DK");
var englishCultureInfo = CultureInfo.GetCultureInfo("en-US");
if (double.TryParse(value,
NumberStyles.AllowDecimalPoint,
englishCultureInfo,
out doubleValue))
return doubleValue;
else if (double.TryParse(value,
NumberStyles.AllowDecimalPoint,
danishCultureInfo,
out doubleValue))
return doubleValue;
else if (double.TryParse(value,
NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands,
englishCultureInfo,
out doubleValue))
return doubleValue;
else if (double.TryParse(value,
NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands,
danishCultureInfo,
out doubleValue))
return doubleValue;
return doubleValue;
}
所以我们尝试将给定string
视为
- 不带千位分隔符的英文浮点数,例如
123456789.1
- 没有千位分隔符的丹麦浮点数,例如
123456789,1
- 带千位分隔符的英文浮点数,例如
123,456,789.1
- 带有千位分隔符的丹麦浮点数,例如
123.456.789,1
请注意,这里有一个歧义:123.456
is 123.456
(英语,since.
是小数分隔符)和123456
(丹麦语,since.
是千位分隔符)
推荐阅读
- windows-server - 如何避免 .dmp 文件被删除
- c# - 图像中 blob 的边界框
- laravel - 未定义索引:值 Quil 文本编辑器 | Laravel Livewire
- javascript - 如何在 Cordova 应用程序中使用 PayPal 结账
- javascript - 在 React Native JavaScript 中使用数组中的数组
- reactjs - Typescript ag-grid onGridReady 参数抛出错误
- android - Android getSystemServices 在 Fragment 中未定义?
- visual-studio-code - 如何在 Visual Studio 代码上运行 yarn cammand?
- amazon-web-services - 访问 s3 的 Jenkins AWS Steps 身份验证错误
- shell - 自定义光标在 zsh 中的位置