为固定宽度浮点值构造动态格式化字符串

RLH*_*RLH 1 cocoa-touch objective-c string-formatting nsstring

我有一个包含各种类型数值的类.在这个类中,我有几个辅助方法,用于输出描述符文本以便在我的应用程序中显示.

此描述符文本应始终显示为整数或浮点数,具体取决于特定实例的定义.

该类有一个属性,DecimalWidth用于确定要显示的小数位数.我需要帮助编写一行显示数值的代码,但是具有固定的小数位数(0是可能的,在这种情况下,该值应显示为整数.)

我知道我可以返回一个值,[NSString stringWithFormat:@"%.02f", self.Value]但我的问题是我需要将格式字符串中的'2'替换为值DecimalWidth.

我能想出解决这个问题的几种方法.我可以将一个字符串连接在一起,这是输出字符串行的格式字符串.或者,我可以在格式字符串中创建格式字符串.

这些解决方案听起来很可怕,看起来效率很低,但也许这些是我拥有的最佳选择.

是否有一种优雅的方法来构造动态格式化字符串,其中输出是固定的十进制宽度数字但指定的十进制宽度是动态的?

Mic*_*rst 5

这对我来说听起来并不可笑或效率低下.

[NSString stringWithFormat:[NSString stringWithFormat:@"%%.%df", DecimalWidth], self.Value]
Run Code Online (Sandbox Code Playgroud)

事实上我觉得它很优雅.