C# 存储整数的滑块
我有一个WPF滑块:C# 存储整数的滑块,c#,wpf,numbers,slider,C#,Wpf,Numbers,Slider,我有一个WPF滑块: <Slider Height="22" HorizontalAlignment="Left" Width="100" TickPlacement="BottomRight" AutoToolTipPlacement="BottomRight" TickFrequency="1" Minimum="10" Maximum="110" Value="{Binding Path=Zoom, Mode=TwoWay}" Ticks="100"/> 为什么只有整数可以存
<Slider Height="22" HorizontalAlignment="Left" Width="100" TickPlacement="BottomRight" AutoToolTipPlacement="BottomRight" TickFrequency="1" Minimum="10" Maximum="110" Value="{Binding Path=Zoom, Mode=TwoWay}" Ticks="100"/>
为什么只有整数可以存储在_zoom中?我不需要十进制数
例如:
缩放为“1399999”
_缩放应为13(整数)
所以我得到了这个错误:
值对于Int32太大或太小
怎么了?这将返回点/小数点左侧的十进制值 计算指定十进制数的整数部分
\u zoom=System.Convert.ToInt32(Math.Truncate(System.Convert.ToDecimal(zoom))代码>也可以说值对于Int32太大或太小。
尝试:_zoom=Math.Truncate(缩放);也许这是文化的问题。根据计算机的设置,Convert
可能需要小数点或小数点逗号。为什么要将zoom转换为int64,然后将其转换为int32为什么不直接进入int32呢?看看Math.Round方法。它有一个用于中点舍入的重载。默认值为ToEven(例如,如果你有2.5,它将四舍五入到2.0。但是如果你有3.5,它将四舍五入到4.0)。从零开始,它将总是向上取整到下一个数字@Nicholas,这非常有用。谢谢
public object Zoom
{
get { return _zoom.ToString() }
set
{
try
{
string zoom = value.ToString().Replace(",", ".");
if (zoom.EndsWith(" %"))
{
_zoom= System.Convert.ToInt32(System.Convert.ToInt64(zoom));
}
OnPropertyChanged("CurrentZoom");
}
catch (FormatException ex)
{
//TODO: =)
}
}
}
_zoom= System.Convert.ToInt32(System.Convert.ToInt64(zoom));
Math.Truncate(zoom)
_zoom = (int)Math.Round(System.Convert.ToDouble(zoom));