我正在尝试将字符串解析为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.46225.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/

10-12 01:20