float abc = 20130401.0f;
NSLog(@"abc = %f",abc);
结果:
2013-04-08 15:47:38.963 CCLearnIphone[5034:c07] abc = 20130400.000000
使用双精度也是一样的。
如何表示一个八位数字?
我知道精度会丢失,但 0.000000 不应该是 1.0000000。
%f 应该是 0.9xxxxxx 等
为什么将 .000000 四舍五入为 1.000000?
float abc = 20130401.0f;
NSLog(@"abc = %f",abc);
结果:
2013-04-08 15:47:38.963 CCLearnIphone[5034:c07] abc = 20130400.000000
使用双精度也是一样的。
如何表示一个八位数字?
我知道精度会丢失,但 0.000000 不应该是 1.0000000。
%f 应该是 0.9xxxxxx 等
为什么将 .000000 四舍五入为 1.000000?
您的数字对于 float var 来说太高了,因此您必须将其更改为 double 并删除数字末尾的“f”字符
double abc = 20130401.0;
NSLog(@"abc = %f",abc);
这是由于float
: 大约 7 位十进制数字的精度。
为什么将 .000000 四舍五入为 1.000000?
事实并非如此。20130401 舍入为 20130400,因为 20130400 是 afloat
可以表示的最接近的值。