Objective-C中的Round双打

时间:2010-08-13 11:25:49

标签: iphone objective-c

我的格式为34.123456789。如何将其更改为34.123?

我只想要小数点后的3位数。

4 个答案:

答案 0 :(得分:21)

您可以使用[NSString stringWithFormat:@"%.3f",d]将其打印到3位小数。

您可以使用round(d*1000)/1000近似围绕它,但当然不能保证这是精确的,因为1000不是2的幂。

答案 1 :(得分:8)

您可以使用:

#include <math.h>
:
dbl = round (dbl * 1000.0) / 1000.0;

请记住,浮点数和双精度数与底层类型可以提供的近似值相近。它可能不是完全。

答案 2 :(得分:7)

批准的解决方案有一个小错字。它缺少“%”。

这是没有拼写错误和一些额外代码的解决方案。

double d = 1.23456;
NSString* myString = [NSString stringWithFormat:@"%.3f",d];

myString将是“1.234”。

答案 3 :(得分:1)

如果你想制作

NSNumberFormatter

您可以使用NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init]; [fmt setMaximumFractionDigits:3]; // 3 is the number of digits NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.123456789]]); // print 34.123 NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.000000000]]); // print 34

 <input name="txtQty" type="text" id="txtQty" size="5" value="<?php echo $qty; ?>"> 
 <input name="btnEdit" type="button" value="Edit" id="btnEdit" onclick="redirectUser()"  />

<script>

 function redirectUser(){
     var qty = document.getElementById('txtQty').value;
     location.replace('<?php echo $_SERVER['PHP_SELF']; ?>action=update&cid=<?php echo $shoppingCartId; ?>&qty='+qty);
 }

 </script>