gpt4 book ai didi

c# - 如何让 InvariantCulture 将逗号识别为小数点分隔符?

转载 作者:太空狗 更新时间:2023-10-29 20:52:51 24 4
gpt4 key购买 nike

如何使用 Single.Parse 解析 1,2?询问的原因是,当我使用 CultureInfo.InvariantCulture 时,我没有得到 1.2,而是 12。

“不变文化”不应该忽略文化吗?

Consider the following example :

using System;
using System.Globalization;

public class Program
{
public static void Main()
{
Console.WriteLine(Single.Parse("1,2", CultureInfo.InvariantCulture));
Console.WriteLine(Single.Parse("1.2", CultureInfo.InvariantCulture));
float value;
Console.WriteLine(Single.TryParse("1,2", NumberStyles.Float, CultureInfo.InvariantCulture, out value));
Console.WriteLine(Single.TryParse("1,2", out value));
Console.WriteLine(value);
}
}

这个的输出将是

12
1.2
False
True
12

但我期待:

1.2
1.2
True
True
1.2

Based on my reading InvariantCulture 我应该得到那个结果,但我没有。

最佳答案

CultureInfo.InvariantCulture 使用 . 作为小数分隔符,使用 , 作为千位分隔符。这与任何用户设置无关,也与您获得的字符串无关,因此得名“InvariantCulture”。具体详情列在NumberFormatInfo.InvariantInfo MSDN 页面。

要使用 , 作为小数点分隔符,请不要使用 CultureInfo.InvariantCulture。相反,使用确实使用 , 作为小数点分隔符的区域性。有许多可以满足您的需求。

或者,创建一个基于 CultureInfo.InvariantCulture 的自定义区域性。你可以调用它的Clone创建副本的方法,您可以修改其属性。

关于c# - 如何让 InvariantCulture 将逗号识别为小数点分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24375160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com