1

誰かに「40」という値を入力してもらう必要があり、アプリはこれを 7.5 で割って葯の値に変換します。現時点で私がやった:

    NSString *pCO2 = _pCO2.text;
    float thepCO2 = [pCO2 floatValue];
    NSInteger newpCO2 = thepCO2/7.5;
    NSString *finalpCO2 = [NSString stringWithFormat:@"%d", newpCO2];

その後、別のビューで、アプリは finalpCO2 と呼ばれる NSString を取得し、次のように数値に変換します。

float newpCO2 = ([pCO2 floatValue]);

ただし、これを行うと、初期 pCO2 の 38 を超える値は 5 に丸められているように見え (38 を 7.5 で割る = 5.0666)、これを下回る値は 4 に丸められます (37 を 7.5 で割る = 4.93)。

なぜこれが起こっているのか誰にも分かりますか?せめて小数点以下1桁までにしてほしい。

ありがとう

レイス

4

1 に答える 1

2

NSInteger整数のみを格納するため、小数点以下は格納されません。浮動小数点値を格納する必要がある場合は、NSFloatまたはを使用します。NSDecimal

于 2012-12-12T17:55:54.200 に答える