为十进制值设置全局cultureinfo

Posted

技术标签:

【中文标题】为十进制值设置全局cultureinfo【英文标题】:Set global cultureinfo for decimal values 【发布时间】:2018-12-06 14:24:31 【问题描述】:

如何为所有十进制值全局设置 CultureInfo。

取一位小数

15.00

我们可以使用 DecimalValue.ToString("C", new CultureInfo("en-GB"))

这样它将转换为该文化和输出是

15.00 欧元

但问题是我能否为项目中显示的所有十进制值设置文化信息

【问题讨论】:

您可以考虑实现自定义值转换器 (docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/…) 并在演示文稿中处理该问题,例如: 【参考方案1】:

您更好的方法是为十进制值声明一个转换器,并在需要显示值的任何地方使用它。

首先编写转换器:

public class DecimalConverter : IValueConverter
    
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        
            if (value == null)
                return "0";
            decimal decimalValue = (decimal)value;
            return decimalValue.ToString("C", new CultureInfo("en-GB"))
        

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        
            throw new NotImplementedException();
        
    

然后,在您的 App.xaml.cs 中,在 ResourceDictionary 中声明它以在您的应用程序中使用它

现在,在您的页面中,无论您在哪里绑定十进制值,您都可以像这样使用它:

   <Label Text="Binding YourDecimalValue, Converter=StaticResource DecimalConverter"/>

【讨论】:

以上是关于为十进制值设置全局cultureinfo的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 $(document).ready(function()); 中为全局变量设置一个值吗?并在外面使用相同的变量? [关闭]

输入时如何将文本字段格式设置为十进制?

将十六进制值设置为 char 变量以进行填充时出现问题

axure全局变量怎么用?axure如何设置全局变量?求助!!

将默认参数定义为全局变量

在php中将整数转换为十进制值