我已检查过与此主题相关的其他帖子,并使用(m <- matrix(1:50, nrow=5))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 1 6 11 16 21 26 31 36 41 46
# [2,] 2 7 12 17 22 27 32 37 42 47
# [3,] 3 8 13 18 23 28 33 38 43 48
# [4,] 4 9 14 19 24 29 34 39 44 49
# [5,] 5 10 15 20 25 30 35 40 45 50
matrix(t(m), nrow=nrow(m))[, c(matrix(1:ncol(m), nrow(m), byrow=T)) ]
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 1 2 3 4 5 26 27 28 29 30
# [2,] 6 7 8 9 10 31 32 33 34 35
# [3,] 11 12 13 14 15 36 37 38 39 40
# [4,] 16 17 18 19 20 41 42 43 44 45
# [5,] 21 22 23 24 25 46 47 48 49 50
函数转换字符串,但值始终为0.
以下是atoi
中存储的值:
hold4
然后我尝试转换为char hold4[4] = { "0", "." , "1", "5", "\0");
并获得
int
int hm = atoi(hold4);
打印出:
hm
我希望hm = 0
为0.15,因为它是hm
中的值。我想将此值用于后续的数学运算。
这是我的代码:
hold4
我如何使这项工作?
答案 0 :(得分:5)
你错过了整数的整点。整数是一个整数(1,2,3,4 ......),不能有小数点。您正在寻找的是漂浮/双重。
答案 1 :(得分:2)
atoi
函数转换一个&#34;字符数组&#34;到一个&#34;整数&#34;,因此得名:(a)rray(to)(i)nt。
您的字符数组有小数位,但atoi
只会转换0-9范围内的字符;它不会返回浮点值。
请注意,您的变量hm
明确属于int
类型,并且您使用%d
打印该值,同时明确int
。您已经完成了所有必需的操作,以确保唯一的可能性是int
值。
答案 2 :(得分:0)
char hold4[5] = { '0', '.' , '1', '5', '\0'};
double a = atof(hold4);
printf("%f",a);
试试这个