Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在没有任何格式的情况下从NSDecimal获取字符串表示?_Iphone_Cocoa_Cocoa Touch_Macos - Fatal编程技术网

Iphone 如何在没有任何格式的情况下从NSDecimal获取字符串表示?

Iphone 如何在没有任何格式的情况下从NSDecimal获取字符串表示?,iphone,cocoa,cocoa-touch,macos,Iphone,Cocoa,Cocoa Touch,Macos,例如,我有一个NSDecimal myDecimal。假设它代表“-1234567.89”之类的内容 如何在不进行任何美化/格式化的情况下获得该小数的干净字符串表示形式?没有本地化?浮点符号=。剩下的只有从0到9的数字,最后是一个-如果它是负数?我需要严格的技术方法得到这个字符串。因此,像12345678976554432123456789.2231这样的数字看起来不应该像格式良好的“12345678876554432123456789.2231”。你说得对吗? 我不想要任何格式。我现在一整天都

例如,我有一个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方法),然后使用您描述的格式字符串。