C# 十进制到整数转换器
我想进行转换,将十进制转换为整数。请看我的代码:C# 十进制到整数转换器,c#,uwp,C#,Uwp,我想进行转换,将十进制转换为整数。请看我的代码: <ProgressBar Margin="0,10,0,10" Grid.Row="2" Grid.ColumnSpan="3" IsIndeterminate="False" Height="10" Maximum="{Binding SavingGoal, Converter={StaticResource DecimalToInt}}" Value="{Binding Balance, Converter={Stat
<ProgressBar Margin="0,10,0,10"
Grid.Row="2" Grid.ColumnSpan="3" IsIndeterminate="False" Height="10"
Maximum="{Binding SavingGoal, Converter={StaticResource DecimalToInt}}" Value="{Binding Balance, Converter={StaticResource DecimalToInt}}"/>
下面是课堂:
public decimal SavingGoal { get; set; }
public decimal Balance { get; set; }
所以我的问题是,我不知道如何使用IValueConverter来适应我的情况。我想将UserControl正在解析的十进制数转换为int,并使progressbar最终工作。您必须将您的
DecimalPoint
转换器注册为静态资源
<ns:DecimalToIntConverter x:Key="DecimalToInt" />
您必须将
decimalpoint
转换器注册为静态资源
<ns:DecimalToIntConverter x:Key="DecimalToInt" />
小数是截断还是四舍五入?如果你同意四舍五入,
这不需要转换器。您可以使用绑定上的StringFormat参数来执行此操作。如果使用#的字符串格式,它将进行舍入。小数是要截断还是舍入?如果你同意四舍五入,
这不需要转换器。您可以使用绑定上的StringFormat参数来执行此操作。如果使用字符串格式#,它将取整。您真的需要小数吗?最大属性和价值属性是双倍的,所以如果这个项目是关于钱的,就使用双倍。如果逗号后不需要超过16位数字,则双精度更为重要 如果仍要使用转换器进行转换,请在转换器类的convert()-方法中进行转换
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
decimal x = (decimal)value;
return Decimal.ToInt32(x);
}
你真的需要小数吗?最大属性和价值属性是双倍的,所以如果这个项目是关于钱的,就使用双倍。如果逗号后不需要超过16位数字,则双精度更为重要 如果仍要使用转换器进行转换,请在转换器类的convert()-方法中进行转换
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
decimal x = (decimal)value;
return Decimal.ToInt32(x);
}
是否最好先检查它是否真的是十进制的?我的意思是:
if(值为十进制){
返回系统。转换为32(值);
}
返回false代码>最好先检查它是否真的是十进制的?我的意思是:
if(值为十进制){
返回系统。转换为32(值);
}
返回false代码>能否显示您的DeciamlToInt
转换器?您的转换器需要通过储蓄目标和余额。IValueConverter接口确实指定了一个参数,但添加一个执行计算的“派生属性”可能更直接。类似于public int PercentOfGoal{get{return(int)(Balance/SavingsGoal)*100;}}
,然后将Value
绑定到该值。当时我的转换器上没有任何东西。现在我在Convert方法中做了类似的事情:if(value是decimal){returnsystem.Convert.ToInt32(value);}returnfalse
您可以显示您的DeciamlToInt
转换器吗?您的转换器需要通过储蓄目标以及余额。IValueConverter接口确实指定了一个参数,但添加一个执行计算的“派生属性”可能更直接。类似于public int PercentOfGoal{get{return(int)(Balance/SavingsGoal)*100;}}
,然后将Value
绑定到该值。当时我的转换器上没有任何东西。现在我在Convert方法中做了类似的事情:if(value是decimal){returnsystem.Convert.ToInt32(value);}returnfalse代码>我已经将转换器注册为静态资源。谢谢!:)我已经将转换器注册为静态资源。谢谢!:)我尝试使用StringFormat参数,但由于代码中的其他问题,它在我的案例中不起作用。我尝试使用StringFormat参数,但由于代码中的其他问题,它在我的案例中不起作用。