Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';这是C++;相当于C#和#x27;什么是十进制?_C#_C++_Decimal - Fatal编程技术网

什么';这是C++;相当于C#和#x27;什么是十进制?

什么';这是C++;相当于C#和#x27;什么是十进制?,c#,c++,decimal,C#,C++,Decimal,我喜欢在我的许多C#程序中使用decimal,我想在其他C语言中试用它 我用C#写了这段代码: >我想用C++重写。 我意识到C++和C++中,它们都没有精确的等价于十进制< /代码>类型,并且最好使用的是双,但是实际上C中有一个支持的十进制< /代码>类型,如果C++中也有一个等价物,我会感到好奇。 C++中是否有C<代码>十进制< /代码>类型,或者是双< /代码>?最好的选择是? 没有,尽管我相信有一个建议。 但如果您导航到IBM同事页面,您将 了解比你想知道的更多关于这个主题的知识

我喜欢在我的许多C#程序中使用
decimal
,我想在其他C语言中试用它

我用C#写了这段代码:

<> >我想用C++重写。

<>我意识到C++和C++中,它们都没有精确的等价于<代码>十进制< /代码>类型,并且最好使用的是双,但是实际上C中有一个支持的<代码>十进制< /代码>类型,如果C++中也有一个等价物,我会感到好奇。

C++中是否有C<代码>十进制< /代码>类型,或者是<代码>双< /代码>?最好的选择是?

没有,尽管我相信有一个建议。 但如果您导航到IBM同事页面,您将

  • 了解比你想知道的更多关于这个主题的知识-他几乎编写了十进制浮点的IEEE 754规范-以及
  • 获取一个链接到它的
值得一提的是,.Net源代码是开源的,并且在Github上。如果你想把代码>系统.DeMale<代码>从C++到C++,你可以从这里开始:

C#的
decimal
类型实际上只是一种所谓的任意精度浮点,其单词“任意”用一个固定值切换出来,可以在its中查找(已通过链接)。它是28个有效数字

至少C++20的标准库中不包括任意精度浮点,但有相当多的库包含该功能。C#的
decimal
也是.NET库的一部分,严格来说,它也是一个库,而不是语言本身的一部分(但紧密耦合)

<支持C++的任意精度浮点库的例子包括:

  • GNU GMP
  • Boost的多精度库
  • CLN的
    长浮点数

  • Henrik Vestermark的
    浮点精度
    那么不,没有直接等价物-取决于使用情况。
    长双精度
    将“更接近”,具体取决于实现。(这可能是一个扩展…)c#中的十进制是一种浮动十进制,而不是浮动二进制类型。检查C++中是否存在浮点十进制类型。这可能是等效的。Boost multiprecision具有更高精度的浮点类型,您可以使用:@janzen包括FLT_基数,因此符合要求的实现可以使用十进制
    浮点
    双精度
    
    
    using System;
    
    decimal get_pi();
    
    int main() {
        Console.WriteLine("Give a number ranging from 1-100: ");
        decimal num = Console.ReadLine();
        Console.Write("Algebraic Equivalent: ");
        if (num >= get_pi()) {
            Console.WriteLine("π");
        } else {
            Console.WriteLine(num);
        }
        // Currently updating the program for giving algebraic equivalents
    }