首页 > 其他分享 >分化小数

分化小数

时间:2024-03-09 23:44:21浏览次数:21  
标签:std string 分化 小数点 C++ result 变量 小数

 输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b<=1000000,c<=100.

输入包含多组数据,结束标记为a=b=c=0.

 

#include <iostream>  
#include <iomanip>  
#include <sstream>  

int main() {
    int a, b, c;
    std::string result;
    std::stringstream ss;

    // 循环读取输入,直到a=b=c=0  
    while (true) {
        std::cin >> a >> b >> c;
        if (a == 0 && b == 0 && c == 0) {
            break; // 结束标记  
        }

        // 转换为double进行除法运算  
        double divResult = static_cast<double>(a) / b;

        // 设置输出流的小数点精度  
        ss << std::fixed << std::setprecision(c) << divResult;

        // 获取格式化后的字符串  
        result = ss.str();

        // 清除stringstream中的内容,以便下次使用  
        ss.clear();
        ss.str("");

        // 输出结果,并去掉末尾可能出现的0和小数点  
        size_t dotPos = result.find('.');
        if (dotPos != std::string::npos) {
            while (result.back() == '0') {
                result.pop_back();
            }
            if (result.back() == '.') {
                result.pop_back();
            }
        }

        std::cout << result << std::endl;
    }

    return 0;
}

 

 

1.std::string result; 是C++代码的一行,它声明了一个名为 result 的变量,该变量的类型是 std::string。这里,std::string 是C++标准库中的一个类,用于表示和操作字符串。

具体解释如下:

  • std:::这是C++标准库的命名空间。C++标准库中的许多类和函数都定义在这个命名空间中。使用 std:: 前缀可以确保我们使用的是标准库中的 string 类,而不是某个用户自定义的同名类。
  • string:这是C++标准库中定义的一个类,用于表示字符串。它可以存储一系列字符,并提供了一系列操作这些字符的方法,比如连接、比较、查找子串等。
  • result:这是我们为 std::string 类型变量所取的名称。我们可以使用这个名称来引用这个变量,比如给它赋值、获取它的长度、修改它的内容等。

声明了这个变量之后,你就可以使用它来存储和操作字符串了。例如:

cpp复制代码
  std::string result;
  result = "Hello, World!"; // 给 result 赋值
  std::cout << result; // 输出 result 的内容,即 "Hello, World!"

在这段代码中,我们首先声明了一个 std::string 类型的变量 result,然后给它赋了一个值 "Hello, World!",最后使用 std::cout 输出了这个变量的内容。

 

std::fixed表示使用定点表示法(即包括小数点)

2.在C++的I/O流中,std::fixed是一个流操纵器(stream manipulator),用于控制浮点数的输出格式。当你使用std::fixed时,它告诉输出流以固定的小数点表示法来格式化浮点数,而不是使用科学计数法。

具体来说,固定小数点表示法意味着浮点数总是以小数点形式输出,无论其大小。即使浮点数的值非常大或非常小,也不会被转换为科学计数法形式(如1.23e+04)。相反,它会按照你设置的精度来输出指定数量的小数位

3.result 应该是一个已经定义并初始化为 std::string 类型的对象。back() 是 std::string 类的一个成员函数,用于返回对最后一个字符的引用

4.esult = ss.str(); 这行代码的作用是获取std::stringstream对象ss中当前的内容,并将其转换为一个std::string类型的字符串,然后将这个字符串赋值给变量result

5.本来是用devC++来编译的然后出现了“back”未声明的问题,查找了文心一言

 

 然后又换了VS来编译成功了。。。。。

嗯 先这样 晚安zz!

标签:std,string,分化,小数点,C++,result,变量,小数
From: https://www.cnblogs.com/LCGJ/p/18062498

相关文章

  • 计算机进行小数运算时出错的原因
    首先,计算机进行小数运算时出错的原因可以归结为以下几个方面:精度限制:计算机内部使用二进制表示数据,而二进制无法精确表示所有的小数。这会导致在进行小数运算时,可能会产生舍入误差。例如,0.1在二进制中是一个无限循环小数,计算机只能近似表示,从而导致运算结果的不精确。舍入......
  • 166. 分数到小数(中)
    目录题目题解正解题目给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回任意一个。对于所有给定的输入,保证答案字符串的长度小于104。示例1:输入:nu......
  • 《程序是怎样跑起来的》第三章“计算机进行小数运算时出错的原因”
    当我们使用计算机进行小数运算时,可能会遇到一些意想不到的错误。这些错误并非计算机的缺陷,而是由于其内在的特性所导致的。深入了解这些原因,有助于我们更好地理解计算机运算的局限性和应对策略,从而在编程和数据处理时更加得心应手。计算机在进行小数运算时出错的原因包括二进......
  • 第三章 计算机进行小数运算
    用二进制数来表示整数和整数的方法有很大不同,例如:0次幂前面的位的位权按照1次幂、2次幂……的方式递增,0次幂以后的位的位权按照-1次幂、-2次幂……的方式递减(这一规律在十进制数和16进制数中也同样适用)。在了解了将二进制数表示的小数转化成10进制数的方法后,计算机运算出错的原因......
  • 计算机进行小数运算时出错的原因
    通过此章的学习我了解的计算机出错的几个重大原因,以及什么是浮点数,让我对计算机有了更加深刻的认知和理解,我也了解到如何在实际程序中确认和如何避免计算机出错计算机运算出错的原因计算机之所以会出现运算错误,是因为“有一些十进制数的小数无法转换成二进制数”。代码清单3-1......
  • vue3 ts用正则表达式校验两位小数和校验整数的方法
    <el-col:span="12"><el-form-itemlabel="贷款金额"prop="loanAmount"><el-input-numberv-model="props.loanAmount":min="0"@change="checkIntegerNumber('loanAmount')"controls......
  • 程序是怎样跑起来第三章小数运算出错原因
    大家可能会认为“万能的计算机是不会出现计算错误的”。但实际上,依然存在程序运行后无法得到正确数值的情况。其中,小数运算就是一个典型的例子。在本章中我们首先了解了将二进制表示的小数转换成十进制的方法,这样便于理解计算机运算出错的原因,计算机之所以会出现运算错误,是因为“......
  • 第三章 计算机在计算小数时会出错的原因
    我们习惯性认为计算机在计算是不会出错,可事实并非如此。本章节第1节举出了一个例子“将0.1累加100次的结果不是10”。C语言程序结果得出10.000002。但出现这种去看并不是计算机故障或者程序编写错误的原因。想了解为什么出现错误,就要做到计算机是如何处理小数的。第2节告诉我们如......
  • 《程序是怎样跑起来的》第三章:计算机进行小数运算时出错的原因
    在当今的数字时代,计算机已经深入到我们生活的方方面面。从简单的计算器到复杂的科学模拟,再到无所不在的智能手机,计算机已经成为了我们生活中不可或缺的一部分。然而,你是否曾经想过,这些看似神奇的机器,它们是如何处理那些看似微不足道的运算,比如小数的计算呢?在《程序是怎老¥细批坦元......
  • 《程序是怎样跑起来的》——第3章 计算机进行小数运算时出错的原因
    一、计算机进行小数运算时也会出错1、计算机不是万能的:计算机在运行的时候绝大多数的时候能得到正确的数值,但依然存在程序运行后无发得到正确数值的情况。小数运算就是这样。2、示例:将0.1累加100次也得不到10但与之相反的是,0.1累加00此后的结果是10。正是这样计算机在运行小......