首页 > 其他分享 >ios NSString format 保留小数点 float double

ios NSString format 保留小数点 float double

时间:2023-06-13 22:34:20浏览次数:39  
标签:format double float ios unsigned long printed integer bit


 

ios NSString format 保留小数点 float double

 

self.orderCost.text = [NSStringstringWithFormat:@"%.1f元",self.order.cost.floatValue]; %.1f  表示小数点一位,%.2f 表示小数点2位,依次类推.



格式定义
The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you can also use the “n$” positional specifiers such as %1$@ %2$s. For more details, see the IEEE printf specification. You can also use these format specifiers with the NSLog function.

Table 1 Format specifiers supported by the NSString formatting methods and CFString formatting functions

定义

说明

%@

Objective-C object, printed as the string returned by descriptionWithLocale: if available, or description otherwise. Also works with CFTypeRef objects, returning the result of the CFCopyDescription function.

%%

‘%’ character

%d, %D, %i

Signed 32-bit integer (int)

%u, %U

Unsigned 32-bit integer (unsigned int)

%hi

Signed 16-bit integer (short)

%hu

Unsigned 16-bit integer (unsigned short)

%qi

Signed 64-bit integer (long long)

%qu

Unsigned 64-bit integer (unsigned long long)

%x

Unsigned 32-bit integer (unsigned int), printed in hexadecimal using the digits 0–9 and lowercase a–f

%X

Unsigned 32-bit integer (unsigned int), printed in hexadecimal using the digits 0–9 and uppercase A–F

%qx

Unsigned 64-bit integer (unsigned long long), printed in hexadecimal using the digits 0–9 and lowercase a–f

%qX

Unsigned 64-bit integer (unsigned long long), printed in hexadecimal using the digits 0–9 and uppercase A–F

%o, %O

Unsigned 32-bit integer (unsigned int), printed in octal

%f

64-bit floating-point number (double)

%e

64-bit floating-point number (double), printed in scientific notation using a lowercase e to introduce the exponent

%E

64-bit floating-point number (double), printed in scientific notation using an uppercase E to introduce the exponent

%g

64-bit floating-point number (double), printed in the style of %e if the exponent is less than –4 or greater than or equal to the precision, in the style of %f otherwise

%G

64-bit floating-point number (double), printed in the style of %E if the exponent is less than –4 or greater than or equal to the precision, in the style of %f otherwise

%c

8-bit unsigned character (unsigned char), printed by NSLog() as an ASCII character, or, if not an ASCII character, in the octal format \\ddd or the Unicode hexadecimal format \\udddd, where d is a digit

%C

16-bit Unicode character (unichar), printed by NSLog() as an ASCII character, or, if not an ASCII character, in the octal format \\ddd or the Unicode hexadecimal format \\udddd, where d is a digit

%s

Null-terminated array of 8-bit unsigned characters. %s interprets its input in the system encoding rather than, for example, UTF-8.

%S

Null-terminated array of 16-bit Unicode characters

%p

Void pointer (void *), printed in hexadecimal with the digits 0–9 and lowercase a–f, with a leading 0x

%L

Length modifier specifying that a following a, A, e, E, f, F, g, or G conversion specifier applies to a long double argument

%a

64-bit floating-point number (double), printed in scientific notation with a leading 0x and one hexadecimal digit before the decimal point using a lowercase p to introduce the exponent

%A

64-bit floating-point number (double), printed in scientific notation with a leading 0X and one hexadecimal digit before the decimal point using a uppercase P to introduce the exponent

%F

64-bit floating-point number (double), printed in decimal notation

%z

Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a size_t or the corresponding signed integer type argument

%t

Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a ptrdiff_t or the corresponding unsigned integer type argument

%j

Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a intmax_t or uintmax_t argument

平台依赖
Mac OS X uses several data types—NSInteger, NSUInteger,CGFloat, and CFIndex—to provide a consistent means of representing values in 32- and 64-bit environments. In a 32-bit environment, NSInteger and NSUInteger are defined as int and unsigned int, respectively. In 64-bit environments, NSInteger and NSUInteger are defined as long and unsigned long, respectively. To avoid the need to use different printf-style type specifiers depending on the platform, you can use the specifiers shown in Table 2. Note that in some cases you may have to cast the value.

Table 2 Format specifiers for data types

类型

定义

建议

NSInteger

%ld or %lx

Cast the value to long

NSUInteger

%lu or %lx

Cast the value to unsigned long

CGFloat

%f or %g

%f works for floats and doubles when formatting; but see below warning when scanning

CFIndex

%ld or %lx

The same as NSInteger

pointer

%p

%p adds 0x to the beginning of the output. If you don’t want that, use %lx and cast to long.

long long

%lld or %llx

long long is 64-bit on both 32- and 64-bit platforms

unsigned long long

%llu or %llx

unsigned long long is 64-bit on both 32- and 64-bit platforms

The following example illustrates the use of %ld to format an NSInteger and the use of a cast.



1

2

NSInteger i = 42;
printf("%ld\n", (long)i);



In addition to the considerations mentioned in Table 2, there is one extra case with scanning: you must distinguish the types for float and double. You should use %f for float, %lf for double. If you need to use scanf (or a variant thereof) with CGFloat, switch to double instead, and copy the double to CGFloat.



1

2

3

4

CGFloat imageWidth;
double tmp;
sscanf (str, "%lf", &tmp);
imageWidth =



It is important to remember that %lf does not represent CGFloat correctly on either 32- or 64-bit platforms. This is unlike %ld, which works for long in all cases.

 

 

 

标签:format,double,float,ios,unsigned,long,printed,integer,bit
From: https://blog.51cto.com/u_16160131/6473909

相关文章

  • iOS程序运行生命周期
    iOS程序运行生命周期  在文件AppDelegate.m中定义了iOS程序运行的各个生命周期,清楚了解程序运行中的每个生命周期,对于我们的开发工作将提供极大的帮助。下面代码就是AppDelegate.m中各生命周期对应的方法。 -(BOOL)application:(UIApplication*)applicationdidFinishLaunch......
  • 【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】
    【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】 在iOS中,图形可分为以下几个层次: 越上层,封装程度越高,动画实现越简洁越简单,但是自由度越低;反之亦然。本文着重介绍CoreAnimation层的基本动画实现方案。在iOS中,展示动画可以类比于显示生活中的“拍电影”。拍电影有......
  • iOS-自定义的画圆或弧的UIView
     iOS-自定义的画圆或弧的UIView CustomViewOfCircle.h#import<UIKit/UIKit.h>@interfaceCustomViewOfCircle:UIView{//是否自定义属性:myDotBOOLisDefinedMyDot;//是否自定义属性:myRadiusBOOLisDefinedMyRadius;//是否自定义属......
  • iOS开发问题集锦
     1.Xcode开发连真机运行报错Pleaseverifythatyourdevice’sclockisproperlyset,andthatyoursigningcertificateisnotexpired. 1.在正常运行的工作电脑上的Xcode导出开发者账号(*.developerprofile)或PKCS12文件(*.p12)进入XcodePreferences|Accounts:选中Apple......
  • 二次封装Axios完全体
    importaxios,{Axios}from"axios";importtype{AxiosRequestConfig}from"axios";import{message}from"antd";//功能失败的错误原因constauthErrMessage:any={ 10031:"登录失效,需要重新登录", 10032:"您太久没登录,请重新登录~......
  • springboot~代码风格统计spring-javaformat-maven-plugin插件
    SpringJavaformat是Spring团队开发的一款基于GoogleJavaFormat的代码格式化工具,可以帮助Java开发者自动化进行代码格式化,提高代码质量,降低代码维护成本。SpringJavaformat可以自定义配置文件,支持大量的代码风格配置选项,满足不同项目和团队的需求。还可以与Gradle、Maven、Int......
  • ios开发 :CUICatalog: Invalid asset name supplied: '(null)'
    _iconImage.image=[UIImageimageNamed:sourceDic[@“image”]];明明有图片,但还是提示这个图片名称不存在报错CUICatalog:Invalidassetnamesupplied:'(null)'打断点进去,显示_iconImage的值是nil添加断点定位到错误在109行-(NSArray*)messageTableSource{if(_mes......
  • vue中使用axios获取不到响应头Content-Disposition的解决办法
    项目中,后端返回的文件流,fileName是机构名称+服务器时间。前端需要拿到响应头里的Content-Disposition字段的值,从中获取文件名在控制台Headers中可以看到相关的字段和文件名,但是在axios里面却获取不到 如果想要让客户端访问到相关信息,服务器不仅要在heade里添加,还要将它们在A......
  • 万物皆可“小程序”——迟到的iOS 14之猜想
    这是一篇没能赶上热点的文章,但好在对技术的讨论总是多多益善,不分冷热。作者:唐赓&LiveVideoStack编辑:CocoLiang时间倒回4月9日,9To5Mac通过iOS14的代码,猜测苹果或将推出全新的APP下载和使用方式,用户只需扫描二维码或打开链接,即可体验应用程序的某些特定功能,而不需要在iPhone或iPad......
  • axios-使用axios发起基本的GET请求
    axios是一个专注于网络请求的库!<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> </head> <body> <scriptsrc="lib/axios.js"></script> <script> //1.调......