2012-12-26 25 views
2

在分开浮动和双精度时,我必须做些什么才能得到不止一个小数位数。Double division丢失小数位数在objective-c中

的代码是:

double *dbl; //In fact this is a parameter of the function 
    double *kg; 
    double total = 41.2; 

    *dbl = *kg * 1000.0l/total; 

在我的情况,*千克= 2485和总= 41.2。所以,结果应该是60315.5339805。但是,我只得到60315.5。为了不丢失其余的小数位,我需要做些什么。

我知道我可以使用NSNumber,但是当我使用doubleValue转换为double时,我总是得到60315.5。

预先感谢您。

+0

你怎么样登录电子呢?一些文字只能做sig figs。 – CodaFi

+0

您是如何将公斤值设置为2485的?这是一个参数吗? –

+0

公斤从其他操作获得它的价值:米*宽度/重量。是的,我记录它,并获得所有小数点后的位置,但如果我在另一个操作中使用,我将它们全部丢失。 – user1929414

回答

0

这对我工作得很好:

- (void) myFunc:(double *)dbl 
{ 
    double kg = 2485; 
    double total = 41.2; 
    *dbl = kg * 1000.0l/total; 
} 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    double d; 
    [self myFunc:&d]; 
    NSLog(@"%lf",d); 
} 
+0

好吧,如果我登录d,我会得到60315.533981。但是,如果我做d * = 2,我得到120631.所有的小数位都去了哪里? – user1929414

+0

你是完全正确的。它完美的作品。我得到的只是日志,而不是真正的值,它具有所有的小数位。谢谢你们俩。 – user1929414

相关问题