使用 xamarin 表单将温度从小数转换为整数
convert temperature from decimal to whole using xamarin forms
只是好奇我将如何在表单中定义以下内容。
c#
weather.Temperature = (string)results["main"]["temp"] ;
xaml
<Label x:Name="tempLabel"
Text="{Binding Temperature , StringFormat='{0}°'F}"/>
我目前的成绩:270.50
应该是 83 F
有什么想法吗?谢谢
首先,您需要手动转换温度,从摄氏度到华氏度,反之亦然(请在网上查看这个,公式是什么)。通过从小数转换为整数,可以使用 Math.Round(yourNumber, 0);
。然后将结果绑定到你的 XAML
.
编辑:您也可以使用转换器{Binding value, Converter={StaticResource YourConverter}
来完成此操作,这样代码就可以重用
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var item = value.ToString();
item = //your fahrehnheit converter formula
//do necessary conversions string to double etc.
return item;
}
忽略转换 °F<->°C 您可以使用格式字符串仅显示整数
<Label x:Name="tempLabel"
Text="{Binding Temperature , StringFormat='{0:F0}°F'}"/>
(请注意,我将 'F' 移到了引号内以便正确显示)。 F0
格式字符串是固定小数位的浮点格式器,小数点为零。 F1
将有一位小数,F2
两位,依此类推。如果您想阅读有关数字格式字符串的更多信息,请参阅 here。
要将 °C 值转换为 °F,您可以使用 IValueConverter
(参见 here),或直接在视图模型中转换该值。
编辑
我没注意到 Temperature
是 string
。为了使用数字格式,Temperature
必须是一个数字。按以下方式转换它
weather.Temperature = double.Parse((string)results["main"]["temp"])
(当然你得把Temperature
属性的类型改成double?
);
我发现服务让我定义单位,我需要做的就是添加
&units=英制
作为服务调用的参数,它将 return 华氏温度。
另外,我应用@Paul Kertscher edit 只显示整数。
谢谢大家的答案。
只是好奇我将如何在表单中定义以下内容。
c#
weather.Temperature = (string)results["main"]["temp"] ;
xaml
<Label x:Name="tempLabel"
Text="{Binding Temperature , StringFormat='{0}°'F}"/>
我目前的成绩:270.50 应该是 83 F
有什么想法吗?谢谢
首先,您需要手动转换温度,从摄氏度到华氏度,反之亦然(请在网上查看这个,公式是什么)。通过从小数转换为整数,可以使用 Math.Round(yourNumber, 0);
。然后将结果绑定到你的 XAML
.
编辑:您也可以使用转换器{Binding value, Converter={StaticResource YourConverter}
来完成此操作,这样代码就可以重用
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var item = value.ToString();
item = //your fahrehnheit converter formula
//do necessary conversions string to double etc.
return item;
}
忽略转换 °F<->°C 您可以使用格式字符串仅显示整数
<Label x:Name="tempLabel"
Text="{Binding Temperature , StringFormat='{0:F0}°F'}"/>
(请注意,我将 'F' 移到了引号内以便正确显示)。 F0
格式字符串是固定小数位的浮点格式器,小数点为零。 F1
将有一位小数,F2
两位,依此类推。如果您想阅读有关数字格式字符串的更多信息,请参阅 here。
要将 °C 值转换为 °F,您可以使用 IValueConverter
(参见 here),或直接在视图模型中转换该值。
编辑
我没注意到 Temperature
是 string
。为了使用数字格式,Temperature
必须是一个数字。按以下方式转换它
weather.Temperature = double.Parse((string)results["main"]["temp"])
(当然你得把Temperature
属性的类型改成double?
);
我发现服务让我定义单位,我需要做的就是添加 &units=英制 作为服务调用的参数,它将 return 华氏温度。 另外,我应用@Paul Kertscher edit 只显示整数。 谢谢大家的答案。