为什么不将std :: double_t流式传输到std :: cout给我小数位?

时间:2019-01-14 14:43:47

标签: c++

我有这个最小的代码

vector

当我在第二个循环中打印public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Skriv inn fornavn: "); String fornavn = scanner.nextLine(); System.out.println("Skriv inn etternavn: "); String etternavn = scanner.nextLine(); System.out.println("Skriv inn alder: "); int alder = scanner.nextLine(); System.out.println("Ditt navn er: " + fornavn + " " + etternavn); System.out.println("Din alder er: " + alder); } 时得到

  

编号:1编号:2编号:54

有人可以告诉我为什么输出不是

  

编号:1.0编号:2.0编号:54.0

因为它们不再是整数,否则将与#include <iostream> #include <string> #include <random> int main() { std::vector<std::double_t> rationalNumbers; std::vector<std::string> input {"1", "2", "54"}; for (auto &st : input) { rationalNumbers.push_back((std::double_t) std::stod(st)); } for (auto &number : rationalNumbers) { std::cout << "Number: " << number << std::endl; } } 冲突,或者我错了吗?

1 个答案:

答案 0 :(得分:2)

您的问题基于一个错误的前提,即流式传输浮点类型的值会自动为您保留一位小数。它没有,而且从来没有。

您将类型/表格与表示形式混淆。在某些情况下,假设整数1与浮点值1.0相同,则显示整数std::fixed是完全合理的。

要获取定点表示,可以使用def checar_valor(a,b): for i in range(len(a)): if b.isin([a['File'][i]]): #ERROR print("O valor %s está presente nos dois dataframes" % a['File'][i]) else: print("O valor %s está presente apenas no dataframe %s" % (a['File'][i], "a")) for q in range(len(b)): if a.isin([b['Código da transação'][q]]): #ERROR print("O valor %s está presente nos dois dataframes" % b['Código da transação'][q]) else: print("O valor %s está presente apenas no dataframe %s" % (b['Código da transação'][q], "b")) Traceback (most recent call last): File "C:/Users/nick/PycharmProjects/WebCrawler/Extranet/testezin.py", line 75, in <module> checar_valor(rs, ga) File "C:/Users/nick/PycharmProjects/WebCrawler/Extranet/testezin.py", line 64, in checar_valor if b.isin([a['File'][i]]): #ERRO File "C:\Users\nick\PycharmProjects\WebCrawler\venv\lib\site-packages\pandas\core\generic.py", line 1576, in __nonzero__ .format(self.__class__.__name__)) ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 。或探索其他一些I/O manipulators。最终,此数字的呈现方式取决于您。