Float、Double、Char、C++ 错误。怎么了?

问题描述 投票:0回答:5

我正在学习C++,但遇到了一个我不明白的错误。

这是我的源代码,包括评论(我正在学习的个人参考。)

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
 float h; //a float stands for floating point variable and can hold a number that is a fraction. I.E. 8.5
 double j; //a double can hold larger fractional numbers. I.E. 8.24525234
 char f; // char stands for character and can hold only one character (converts to ASCII, behind scenes).
 f = '$';  //char can hold any common symbol, numbers, uppercase, lowerver, and special characters.
 h = "8.5";
 j = "8.56";

 cout << "J: " << j << endl;
 cout << "H: " << h <<endl;
 cout << "F: " << f << endl;

 cin.get();
 return 0;
}

编译时出现以下错误:

错误 C2440:'=':无法从 'const char [4]' 到 'float' 没有任何上下文可以进行此转换

还有

错误 C2440:'=':无法从 'const char [5]' 到 'double' 没有任何上下文可以进行此转换

你们能指出我正确的方向吗? 我刚刚了解了 const(可能是 20 分钟前),但我不明白为什么之前的程序不能正常工作。

c++ floating-point
5个回答
10
投票

不要在浮点值两边加上引号。

h = "8.5";
j = "8.56";

应该是

h = 8.5;
j = 8.56;

当您键入整型(如

int
short
等)以及浮点类型(如
float
double
)的文字值时,不使用引号。

例如:

int x = 10;
float y = 3.1415926;

仅在输入 string 文字时才使用双引号,在 C++ 中它是一个以 null 结尾的

const char[]
数组。

const char* s1 = "Hello";
std::string s2 = "Goodbye";

最后,当您为单个字符(类型为

char
)键入文字字母或符号值时,可以使用单引号。

char c = 'A';

4
投票

分配给 float 或 double 时,不能将值括在引号中。

这些行:

h = "8.5";
j = "8.56";

应该是:

h = 8.5;
j = 8.56;

2
投票

您不需要将浮点数括在“引号”中。引号中的任何内容都是字符串(const char*)。


1
投票

double
float
值不应加引号。


1
投票

删除 h 和 j 作业中的引号。

© www.soinside.com 2019 - 2024. All rights reserved.