"C언어 float를 char*로 변환"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(다른 사용자 한 명의 중간 판 5개는 보이지 않습니다)
2번째 줄: 2번째 줄:
;C언어 float를 char*로 변환
;C언어 float를 char*로 변환


<source lang='c'>
==원래 값 그대로==
<syntaxhighlight lang='c'>
#define _GNU_SOURCE
#define _GNU_SOURCE
#include<stdio.h>
#include<stdio.h>
int main() {
int main() {
     char* s = "";
     char* s = "";
     asprintf(&s, "%g", 3.14);
     asprintf(&s, "%g", 3.14159);
     printf("%s\n", s);
     printf("%s\n", s);
     // 3.14
     // 3.14159
}
}
</source>
</syntaxhighlight>
<source lang='c'>
{{소스헤더|함수 작성}}
<syntaxhighlight lang='c'>
#define _GNU_SOURCE
#define _GNU_SOURCE
#include<stdio.h>
#include<stdio.h>
24번째 줄: 26번째 줄:
     printf("%s\n", float2charp(3)); // 3
     printf("%s\n", float2charp(3)); // 3
     printf("%s\n", float2charp(-3)); // -3
     printf("%s\n", float2charp(-3)); // -3
     printf("%s\n", float2charp(3.14)); // 3.14
     printf("%s\n", float2charp(3.14159)); // 3.14159
     printf("%s\n", float2charp(-3.14)); // -3.14
     printf("%s\n", float2charp(-3.14159)); // -3.14159
}
}
</source>
</syntaxhighlight>
<source lang='c'>
 
==자리수 지정==
<syntaxhighlight lang='c'>
#define _GNU_SOURCE
#include<stdio.h>
int main() {
    char* s = "";
    asprintf(&s, "%.3f", 3.14159);
    printf("%s\n", s);
    // 3.142
}
</syntaxhighlight>
{{소스헤더|함수 작성}}
<syntaxhighlight lang='c'>
#define _GNU_SOURCE
#define _GNU_SOURCE
#include<stdio.h>
#include<stdio.h>
45번째 줄: 60번째 줄:
     printf("%s\n", float2charp(-3.14159,3)); // -3.142
     printf("%s\n", float2charp(-3.14159,3)); // -3.142
}
}
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==

2020년 11월 2일 (월) 02:41 기준 최신판

1 개요[ | ]

C언어 float를 char*로 변환

2 원래 값 그대로[ | ]

#define _GNU_SOURCE
#include<stdio.h>
int main() {
    char* s = "";
    asprintf(&s, "%g", 3.14159);
    printf("%s\n", s);
    // 3.14159
}
함수 작성
#define _GNU_SOURCE
#include<stdio.h>
char* float2charp(float f) {
    char* s = "";
    asprintf(&s, "%g", f);
    return s;
}
int main() {
    printf("%s\n", float2charp(0)); // 0
    printf("%s\n", float2charp(3)); // 3
    printf("%s\n", float2charp(-3)); // -3
    printf("%s\n", float2charp(3.14159)); // 3.14159
    printf("%s\n", float2charp(-3.14159)); // -3.14159
}

3 자리수 지정[ | ]

#define _GNU_SOURCE
#include<stdio.h>
int main() {
    char* s = "";
    asprintf(&s, "%.3f", 3.14159);
    printf("%s\n", s);
    // 3.142
}
함수 작성
#define _GNU_SOURCE
#include<stdio.h>
char* float2charp(float f, int point) {
    char* format = "";
    asprintf(&format, "%%.%df", point);
    char* s = "";
    asprintf(&s, format, f);
    return s;
}
int main() {
    printf("%s\n", float2charp(0,3)); // 0.000
    printf("%s\n", float2charp(3,3)); // 3.000
    printf("%s\n", float2charp(-3,3)); // -3.000
    printf("%s\n", float2charp(3.14159,3)); // 3.142
    printf("%s\n", float2charp(-3.14159,3)); // -3.142
}

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}