在我的应用程序中,我想测试float a = float b,然后执行一些操作.但是,我想知道,在浮点型0.2 + 0.3 == 0.5中返回false.
所以这是我的代码的一部分
float a = 0.3f;
float b = 0.2f;
float c = 0.5f;
if (a + b == c)
Console.WriteLine("true");
else
Console.WriteLine("false");
Console.WriteLine(a+b);
Console.WriteLine(c);
Run Code Online (Sandbox Code Playgroud)
这是这一部分的结果
false
0.5
0.5
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这里有什么问题......我可以使用double或decimal代替float,但我想知道这里有什么问题.感谢帮助.
我将文本框绑定到Propery并输入小于-1的负数时出现问题 - 例如-0.45:
文本框:
<TextBox Text="{Binding Txt, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
Run Code Online (Sandbox Code Playgroud)
和财产:
double txt;
public double Txt
{
get { return txt; }
set { txt = value; OnPropertyChanged("Txt"); }
}
Run Code Online (Sandbox Code Playgroud)
似乎当我尝试输入-0.54时,它立即变为0,为什么?
我再次回到我的一个问题和疑问.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace compare_string
{
class Program
{
static void Main(string[] args)
{
string str1 = "85.8500000000000";
string str2 = "85.85";
double num1 = Convert.ToDouble(str1);
double num2 = Convert.ToDouble(str2);
if (num1 != num2)
{
Console.WriteLine("Unequal");
}
else {
Console.WriteLine("Equal");
}
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么要说两个数字是不相等的?提前致谢!
我有这样的if语句
decimal var1, var2;
if(var1 == 0.00 || var2 == 0.00)
{
...
}
Run Code Online (Sandbox Code Playgroud)
编译器显示错误:
运算符'=='不能应用于类型
'decimal'和的操作数'double'
我也试过了
If(var1 = 0.00 || var2 = 0.00){
//this
}
Run Code Online (Sandbox Code Playgroud)
编译器显示错误:
运营商'||' 不能应用于类型
'decimal'和操作数'double'
我做的第三件事就是制作0.00一个像"0.00"以前的方法一样的字符串,只是为了看看它是否会做任何不同的事情.
我有这个代码:
static void Main()
{
float i;
for (i = 0; i <= 100; i = i + 0.01F)
{
Console.WriteLine(i);
}
}
Run Code Online (Sandbox Code Playgroud)
它打印我这个:
0
0.01
0.02
0.03
0.04
0.05
0.05999999
0.06999999
0.07999999
0.08999999
0.09999999
0.11
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是我做错了什么?这有什么解决方案吗?
我想找到方程的所有正整数解,
a^3 + b^3 = c^3 + d^3其中a,b,c,d是1到1000之间的整数;
for (int a = 1; a <= 1000; ++a)
{
for (int b = 1; b <= 1000; ++b)
{
for (int c = 1; c <= 1000; ++c)
{
for (int d = 1; d <= 1000; ++d)
{
if (Math.Pow(a, 3) + Math.Pow(b, 3) == Math.Pow(c, 3) + Math.Pow(d, 3))
{
Console.WriteLine("{0} {1} {2} {3}", a,b,c,d);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道d = Math.Pow(a^3 + b^3 - c^3, 1/3) …
在学习浮点运算时,我发现了一些东西,我引用:'浮点数/双精度不能精确存储0.1".
SO上有一个问题指向同一件事,接受的答案也很有说服力.但是我想在我自己的计算机上试一试,所以我写下面的程序如下
double a = 0.1;
if (a == 0.1)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
Console.Read();
Run Code Online (Sandbox Code Playgroud)
和控制台打印True.令人震惊,因为我已经说服了别的东西.任何人都可以告诉我浮点运算是怎么回事?或者我只有一台将数值存储为10的计算机?
我是 C# 的新手,这段代码我试图使用 double 作为数据类型
using System;
namespace FirstProject
{
class Program
{
static void Main(string[] args)
{
Console.Title = "My First Project";
double num1, num2, div;
Console.WriteLine("Enter The First Number :");
num1 = double.Parse(Console.ReadLine());
Console.WriteLine("Enter The Second Number :");
num2 = double.Parse(Console.ReadLine());
switch (num2)
{
case 0:
Console.WriteLine("Alert Divide By Zero");
break;
default:
div = num1 / num2;
Console.WriteLine("The Result Of Division Is " + div);
break;
}
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
该变量num2有一个警告Error 1 A switch …