gpt4 book ai didi

java - 为什么%运算符在C/C++中不能用于 float ,但在Java和C#中可以使用?

转载 作者:行者123 更新时间:2023-11-30 21:10:47 25 4
gpt4 key购买 nike

考虑以下 C++ 程序:

#include <iostream>
int main()
{
float f = 9.9f, m = 3.3f;
float c = f % m;
std::cout << c;
return 0;
}

显示错误:Illegal use of floating point

当我用 Java 编写相同的程序时,例如:

class Test
{
public static void main(String args[])
{
float f = 9.9f, m = 3.3f;
float c = f % m;
System.out.println(c);
}
}

给我输出:3.2999997

以及 C# 语言:

using System;
class Test
{
public static void Main()
{
float f = 9.9f, m = 3.3f;
float c = f % m;
Console.WriteLine(c);
}
}

给出输出:3.3

为什么相同的编程逻辑在不同的语言中会给出三种不同的输出?为什么我们不能使用modulo %在 C/C++ 中可以使用 float ,但可以在 Java 和 C# 中使用?

抱歉,如果这是一个愚蠢的问题...我是一名学生...谢谢。

最佳答案

可能 C 和 C++ 没有它,因为有不止一种方法可以做到这一点:向零舍入 (fmod) 和向最接近的整数舍入 (余数) >)。您必须知道(或查找)您引用的其他语言选择了哪些版本。

关于java - 为什么%运算符在C/C++中不能用于 float ,但在Java和C#中可以使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com