我正在尝试将字符串解析为NSNumber,该字符串的末尾具有%字符,可以在该系列的ShinobiChart值属性中使用。
给定以下代码,我正在创建NSNumberFormatter:
var formatter = new NSNumberFormatter ();
formatter.NumberStyle = NSNumberFormatterStyle.Percent;
var locale = new NSLocale ("en_US");
formatter.Locale = locale;
现在,我将尝试使用格式化程序来获取图表切片标签的值:
var value = formatter.NumberFromString (answer.RepliesShare.ToString () + "%");
这将为我提供0.33的值...重点是,如果我从字符串中删除“%”,则该值将为null。
因此,我需要获得一个NSNumber,其值为(即)30%(换句话说,为numberString +“%”)。
我怎么才能得到它?
更清楚地说,我正在尝试实现以下目标:
由于ShinobiChart的值类型为NSNumber,而我的RepliesShare为小数,因此我尝试将我的小数从33.00转换为33%。 ShinobiChart不带字符串,否则我会处理它。我发现NSNumber可以用NSNumberFormatted格式化,所以我认为我可以使用它,因为Chart需要一个数字。
最佳答案
SChartDonutSeries
(因此是SChartPieSeries
)对象具有LabelFormatString
属性。这需要一个字符串,并用于格式化这些标签。它具有与NSNumberFormatter
中相同的语法。因此,要获得所需的行为,请在LabelFormatString
子类中创建系列对象后,设置SChartDataSource
:
var series = new SChartDonutSeries();
series.LabelFormatString = "%0.2f%%";
这会将数字格式设置为两位小数,并在最后加上一个百分号。即
25.462
→25.46%
。适当调整格式字符串以获取所需的格式。请记住,要显示%
符号,您需要对其进行转义-%%
。有关创建适当的格式字符串的更多详细信息,请参见此处:
https://developer.apple.com/library/ios/documentation/cocoa/conceptual/Strings/Articles/formatSpecifiers.html
关于ios - NSNumberFormatter在Xamarin.iOS + ShinobiChart中返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23037903/