teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

strtodを用いた試行錯誤の追記

2019/02/13 08:33

投稿

Kazumori102
Kazumori102

スコア45

title CHANGED
File without changes
body CHANGED
@@ -89,4 +89,37 @@
89
89
 
90
90
 
91
91
  ###余談
92
- 関数名は double型のnamberをscanするkazumori製関数という意味で付けました。もっといい感じの名前も募集中。
92
+ 関数名は double型のnamberをscanするkazumori製関数という意味で付けました。もっといい感じの名前も募集中。
93
+
94
+ ###19/02/13追記
95
+ 変換部分の試行錯誤として、[C言語関数辞典のstrtod](http://www.c-tipsref.com/reference/stdlib/strtod.html)を参考に作ってみようと、サンプルコードを試してみましたが求める結果が出ませんでした。関数の仕様でしょうか?
96
+
97
+ ```c
98
+ #include <stdio.h>
99
+ #include <stdlib.h>
100
+
101
+ /* macros */
102
+ #define N 256
103
+
104
+ /* main */
105
+ int main(void) {
106
+ char s[N] = {'\0'}, *endptr;
107
+ double x;
108
+
109
+ /* 入力 */
110
+ fgets(s, N, stdin);
111
+ printf("変換前: %s", s);
112
+
113
+ /* 変換 */
114
+ x = strtod(s, &endptr);
115
+ printf("変換後: %.2f\n", x);
116
+ printf("endptr: %s\n", endptr);
117
+
118
+ return EXIT_SUCCESS;
119
+ }
120
+ ```
121
+ ```
122
+ 変換前: 123456789012345678901234567890
123
+ 変換後: 123456789012345680000000000000.00
124
+ 求結果: 123456789012345678901234567890.00
125
+ ```