草庐IT

c++ - 如何在 Qt 中打印所有小数点的 double 值?

首先,这不是重复的。我在网上搜索过,但没有足够的答案。我想打印一个double。所以我必须将它转换为QString。我想要没有科学计数法,0.1应该打印0.1和1/3应该打印尽可能多的0.33333...double能够表示。不幸的是,我只能找到具有固定精度的解决方案,这会导致上限为0.333333(在指定的p松动精度后结束)或不必要的零填充0.100000。我知道我可以最大化精度并删除所有尾随零,但是否有一个很好的解决方案,它只打印最大可能但最小必要精度?编辑:我想我需要澄清一些事情。这道题不是要将实数空间映射成单精度、double或任何精度的float。它是关于逆向的:将64位do

c++ - 将浮点除法分解为整数和小数部分

我正在尝试使用double进行整数除法+模运算(用于基于样条的插值),但是在使用std::floor和std::fmod.我一直在使用下面的div1的等价物,但是在50时它产生了不正确的结果(也就是说,整数部分是3,但模数部分是除数减去epsilon)。div2有效但相当复杂。div3至少是一致的,但没有返回我想要的结果类型(余数可能是负数,所以在我可以使用它之前需要进一步的操作)。#include#includestd::pairdiv1(intnum,doubledenom){doublewhole=std::floor(num/denom);doubleremain=std::f

c++提取小数解错误

简单的c++问题,如您所见,它创建了一个表并输入变量a和变量tanswer,问题是我不知道如何修复if()。如您所见,它有一个错误(打字错误)。我不知道如何识别变量t是否有示例:1或1.5,如果数字有1。(这里有些东西,它大于数字。1)然后调用一个条件,否则调用另一个。inta,b=18;doublet;for(a=0;a=*.1)cout尝试过:#include#include#include#includeusingnamespacestd;intmain(){inta,b=18;doublet;for(a=0;a=0.1)cout以我自己的方式修复,仍然感谢'Angew'他是第一

c++ - 小数位数之和

下面是一道编程面试练习题。处理这个问题的聪明方法是什么?一个数字M以相反的顺序存储在数组中。例如,数字274存储在以下数组中:A[0]=4A[1]=7A[2]=2编写一个函数,给定表示某个数字的数组A,返回数字M*17的十进制表示的数字总和。数组大小可以非常大(超过2,000,000个元素)。 最佳答案 想象一下,您正在手写将153乘以17。它看起来像这样:15317---518517----2601但是您实际上并不需要保存完整的结果;您只需要在进行时添加数字即可。所以在第一步之后你知道最后一位是1,你进了5。然后在第二步之后你知道

c++ - 使用 Float 或 Double 类型时不显示小数

我的代码是这样的:#includeintmain(){usingnamespacestd;constfloatdollar=1.00;cout我是C++的初学者。我输入这段代码只是玩玩,并假设控制台会显示“你有10.00美元,但它实际上显示我有“10”而不是“10.00”美元。有人能告诉我这是为什么吗? 最佳答案 由于您正在处理美元金额,您可以在写入cout之前设置以下内容:std::cout.precision(2);std::cout.setf(std::ios::fixed);Livecodeexampleatcoliru#i

c++ - 如何将 double 舍入到 n 位小数?

这个问题在这里已经有了答案:Roundafloattoaregulargridofpredefinedpoints(11个答案)关闭5年前。我试图在标准库中找到一个round函数,但没有找到。有没有办法在C++中将double舍入为n位小数?

c++ - 为什么小数点后的数字都是零?

我想执行一些计算,我希望结果正确到小数位,比如12。于是我写了一个样例:#definePI3.1415926535897932384626433832795028841971693993751doubled,k,h;k=999999/(2*PI);h=999999;d=PI*k*k*h;printf("%.12f\n",d);但它给出了输出:79577232813771760.000000000000我什至使用了setprecision(),但答案相同,而不是指数形式。cout打印7.95772328138e+16也用过longdouble,但是没有用。除了将整数部分和小数部分分别存储

c++ - qt - 小数和四舍五入到整数

这是我目前所掌握的,但我无法确定下一步。当我将我的值除以3时,我得到了整数,但我希望它以一位小数显示,但我不知道该怎么做。完成后,我想根据其值向上或向下舍入小数。如果是3.5或以上,则应变为4,如果是3.4或以下,则应为3。voidMainWindow::on_pushButton_clicked(){intparagraph=ui->lineEdit->text().toInt();intsection=ui->lineEdit_2->text().toInt();intlines=ui->lineEdit_3->text().toInt();intsum=(paragraph*(l

c++ - 存储一位小数

我有一个与大量小整数(实际上是十进制数字)有关的问题。存储此类数据的节省空间的方法是什么?使用std::bitset是个好主意吗?存储一位小数? 最佳答案 根据空间效率必须如何以及检索效率应该如何,我看到两种可能性:由于vectorstd::bitset是(据我所知)存储在一个未压缩的设置中(每个位集存储在一个内存字中,32位或64位),你可能至少应该使用打包表示,比如使用64位字来存储16位数字:store(ifthedigitwasnotstoredbefore):block|=digit>4*index)&0xFreset:b

c++ - float 的小数部分最多有多少位 10 位数字

如果可以输出一个float,这样就没有值的截断(例如使用setpercision)并且数字以固定表示法输出(例如使用fixed>)保证float的整个小数部分可以存储在缓冲区中所需的缓冲区大小是多少?我希望标准中有一些东西,比如#define或numeric_limits中的东西,它会告诉我小数的以10为底的最大值位置浮点类型的一部分。我在这里询问了浮点类型的小数部分中以10为底的数字的最大数量:WhatAretheMaximumNumberofBase-10DigitsintheIntegralPartofaFloatingPointNumber但我意识到这可能更复杂。例如,1.0/