forked from len0rd/rockbox
PDBox: Minor addition and bugfixes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22148 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
bec80ca7dd
commit
11ac0b3f2a
4 changed files with 48 additions and 6 deletions
|
|
@ -263,8 +263,14 @@ void rb_ftoan(float f, char* out, int size)
|
|||
strcat(out, ".");
|
||||
size--;
|
||||
|
||||
/* Calculate first rest and convert it. */
|
||||
/* Calculate first rest. */
|
||||
float rest1 = (f - (float) int_part) * 1000000000.0;
|
||||
|
||||
/* If there is no fractional part, return here. */
|
||||
if(rest1 == 0.0f)
|
||||
return;
|
||||
|
||||
/* Convert the first rest to string. */
|
||||
int irest1 = (int) rest1;
|
||||
snprintf(sbuf, SBUFSIZE-1, "%09d", irest1);
|
||||
|
||||
|
|
@ -278,8 +284,26 @@ void rb_ftoan(float f, char* out, int size)
|
|||
if(size <= 0)
|
||||
return;
|
||||
|
||||
/* Calculate second rest and convert it. */
|
||||
/* Calculate second rest. */
|
||||
float rest2 = (rest1 - (float) irest1) * 1000000000.0;
|
||||
|
||||
/* If no second rest, check whether
|
||||
the output string has unwanted zero trail,
|
||||
remove it and end processing here. */
|
||||
if(rest2 == 0.0f)
|
||||
{
|
||||
char* zerotrail = out + strlen(out) - 1;
|
||||
|
||||
for(; zerotrail >= out; zerotrail--)
|
||||
{
|
||||
if(*zerotrail == '0')
|
||||
*zerotrail = '\0';
|
||||
else
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Convert second rest. */
|
||||
int irest2 = (int) rest2;
|
||||
snprintf(sbuf, SBUFSIZE-1, "%09d", irest2);
|
||||
|
||||
|
|
@ -287,6 +311,16 @@ void rb_ftoan(float f, char* out, int size)
|
|||
int rest2_len = strlen(sbuf);
|
||||
int rest2_minlen = MIN(size, rest2_len);
|
||||
strncat(out, sbuf, rest2_minlen);
|
||||
|
||||
/* Cut trailing zeroes. */
|
||||
char* zerotrail = out + strlen(out) - 1;
|
||||
for(;zerotrail >= out; zerotrail--)
|
||||
{
|
||||
if(*zerotrail == '0')
|
||||
*zerotrail = '\0';
|
||||
else
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue