Как я могу распечатать результат как 0,0045 - PullRequest
0 голосов
/ 11 сентября 2010
     I only get this 

1667785316

1667785316

1667785316

     Float32 preferredBufferSize = 0.005; // 5 millis buffer
  UInt32 size = sizeof(preferredBufferSize);


    AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareIOBufferDuration, &size,
                &preferredBufferSize);
   printf("\n%d", kAudioSessionProperty_CurrentHardwareIOBufferDuration);

If

        printf("\n%.4f", kAudioSessionProperty_CurrentHardwareIOBufferDuration);

я получаю 736204793259769514805539544958332881185808905380376591296729466482703872896792123284994544877461533270472921226586720994654163338779026978512060081697113376452636514975744,0000 736204793259769514805539544958332881185808905380376591296729466482703872896792123284994544877461533270472921226586720994654163338779026978512060081697113376452636514975744.0000

Ответы [ 4 ]

2 голосов
/ 11 сентября 2010

Вы используете целочисленный символ.Вместо этого используйте поплавок.

printf("\n%.4f", kAudioSessionProperty_CurrentHardwareIOBufferDuration);
1 голос
/ 26 апреля 2011

почему вы печатаете идентификатор свойства вместо значения?если вы хотите распечатать свои миллисекунды, сделайте это так:

Float32 currentBufferSize; 
UInt32 size = sizeof(currentBufferSize);
AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareIOBufferDuration, 
                        &size,
                        &currentBufferSize);
printf("\n%.4f", currentBufferSize);
0 голосов
/ 26 апреля 2011

%d означает целое число, используйте %f для float или double. Читать Спецификаторы формата строки .

0 голосов
/ 11 сентября 2010
printf("\n%.4f", kAudioSessionProperty_CurrentHardwareIOBufferDuration);

, если вам нужна точность в 4 десятичных знака для 32-битного числа с плавающей запятой.Бросьте .4, если вы хотите произвольную длину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...