Iphone 如何在没有任何格式的情况下从NSDecimal获取字符串表示?
例如,我有一个NSDecimal myDecimal。假设它代表“-1234567.89”之类的内容 如何在不进行任何美化/格式化的情况下获得该小数的干净字符串表示形式?没有本地化?浮点符号=。剩下的只有从0到9的数字,最后是一个-如果它是负数?我需要严格的技术方法得到这个字符串。因此,像12345678976554432123456789.2231这样的数字看起来不应该像格式良好的“12345678876554432123456789.2231”。你说得对吗?Iphone 如何在没有任何格式的情况下从NSDecimal获取字符串表示?,iphone,cocoa,cocoa-touch,macos,Iphone,Cocoa,Cocoa Touch,Macos,例如,我有一个NSDecimal myDecimal。假设它代表“-1234567.89”之类的内容 如何在不进行任何美化/格式化的情况下获得该小数的干净字符串表示形式?没有本地化?浮点符号=。剩下的只有从0到9的数字,最后是一个-如果它是负数?我需要严格的技术方法得到这个字符串。因此,像12345678976554432123456789.2231这样的数字看起来不应该像格式良好的“12345678876554432123456789.2231”。你说得对吗? 我不想要任何格式。我现在一整天都
我不想要任何格式。我现在一整天都在努力把它做好,但我发现的一切都与格式有关。那么你们是怎么做到的呢?为了便于(本地化)控制,请使用NSNumberFormatter。我不相信存在独立于指定区域设置的“干净”字符串表示。正如许多欧洲人所指出的,123.45应该写成123,45(使用,而不是。作为十进制位置)
NSDecimalString()
(可在中找到)将区域设置规范作为第二个参数。如果某个区域设置使用所需的格式,请将该区域设置作为第二个参数传递(有关区域设置的更多信息,请参阅)
或者,您可以使用,这将使您能够更好地控制字符串表示
float number = 12.345;
NSString* numberString = [NSString stringWithFormat:@"%f", number];
这将为您提供一致的格式,而不管用户的当前区域设置如何。当您选择使用
字符分隔整数和小数部分时,您将使用一些格式。对我来说,未格式化的十进制将使用,
。默认情况下,NSDecimalString()函数不添加千位分隔符,所以您只是对十进制分隔符有问题吗?在他的例子中,他询问的是NSDecimal,而不是标准浮点类型。但是,他可以从NSDecimal中提取浮点值(通过创建临时NSDecimalNumber并使用其floatValue或doubleValue方法),然后使用您描述的格式字符串。