File: _round.c

package info (click to toggle)
ruby1.8 1.8.7.302-2squeeze5
  • links: PTS, VCS
  • area: main
  • in suites: squeeze-lts
  • size: 26,692 kB
  • ctags: 38,616
  • sloc: ruby: 245,002; ansic: 144,156; yacc: 5,890; sh: 2,677; lisp: 1,626; tcl: 949; makefile: 358; sed: 129; xml: 122; awk: 36; cpp: 28; asm: 25; perl: 18; python: 6
file content (45 lines) | stat: -rw-r--r-- 1,028 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
 * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
 * --------------------------------------------------------------------
 * This file is written by the Project C Library Group,  and completely
 * in public domain. You can freely use, copy, modify, and redistribute
 * the whole contents, without this notice.
 * --------------------------------------------------------------------
 * $Id: _round.c 11708 2007-02-12 23:01:19Z shyouhei $
 */
/* changed 1997.2.2 by K.Okabe */

/* System headers */
#include <stdlib.h>
#include <sys/xstdlib.h>

/* Functions */
int _round (char *top, char *cur, int undig)
{
    char *ptr;

    /* Ǹ夬5̤ʤݤɬפʤ */
    if (undig < '5')
	return 0;

    /* ݥ */
    ptr = cur - 1;

    /* Ƭޤʤݤ */
    while (ptr >= top) {

	/* 夬ʤФǽ */
	if (++(*ptr) <= '9')
	    return 0;

	/* η0᤹ */
	*ptr-- = '0';

    }

    /* Ƭ1ˤ */
    *++ptr = '1';

    /* 夬򤷤餻 */
    return 1;
}