Tag: 浮点数

如何使InvariantCulture将逗号识别为小数分隔符?

如何使用Single.Parse解析1,2 ? 问的原因是因为,当我使用CultureInfo.InvariantCulture我没有按照我的CultureInfo.InvariantCulture得到1.2,而是12。 不应该“不变文化”忽视文化吗? 请考虑以下示例 : using System; using System.Globalization; public class Program { public static void Main() { Console.WriteLine(Single.Parse(“1,2”, CultureInfo.InvariantCulture)); Console.WriteLine(Single.Parse(“1.2”, CultureInfo.InvariantCulture)); float value; Console.WriteLine(Single.TryParse(“1,2”, NumberStyles.Float, CultureInfo.InvariantCulture, out value)); Console.WriteLine(Single.TryParse(“1,2”, out value)); Console.WriteLine(value); } } 这个的输出将是 12 1.2 假 真正 12 但我期待: 1.2 1.2 真正 真正 1.2 基于 我对InvariantCulture 阅读 ,我应该得到那个结果,但我不是。

为什么Math.Tan(90)提供了非未定义的值?

在使用Math.Tan()我发现90度的结果并不是未定义的。 但是,是1.6331779e + 16 这是该应用程序的屏幕截图 这是代码, // convert to degrees angle = (Convert.ToDouble(op1) * Math.PI / 180); // write the output FinalResult.Text = Math.Tan(Convert.ToDouble(angle)).ToString(); 为什么会出现这种行为?

从大浮点号C#中删除E号?

如果你使用大浮点数,你在C#中发现大浮点数就像这样: 2000000 * 2000000 = 4E + 12 如何将4E + 12显示为4,000,000,000,000而非4E + 12 ?

如何将二进制字符串转换为float或double?

在这个问题中,Bill The Lizard询问如何显示float或double的二进制表示 。 我想知道的是,给定一个适当长度的二进制字符串,我怎样才能执行反向操作(在C#中)? 换句话说,如何将二进制字符串转换为float或double? 作为旁注,是否有任何位串不会导致有效的浮点数或双倍? 编辑:二进制字符串我的意思是一个0和1的字符串。 所以,我的输入将是这样的字符串: 01010101010101010101010101010101 我的输出应该是一个浮点数。 (或者,如果字符串中有64位,则为double。)

在大字符串中查找浮点数

我有一个大字符串,在字符串中有一系列浮点数。 典型的字符串将具有Item X $4.50 Description of item \r\n\r\n Item Z $4.75…文本实际上没有押韵或原因。 我已经是最低的,我需要找到字符串中的所有值。 因此,如果它是10.00 ,它将找到10.05或更小的每个值。 我会假设某种正则表达式会涉及到找到值,然后我可以将它们放在一个数组中然后对它们进行排序。 因此,找到哪些值符合我的标准就是这样的。 int [] array; int arraysize; int lowvalue; int total; for(int i = 0; i<arraysize; ++i) { if(array[i] == lowvalue*1.05) ++total; } 我的问题是在数组中获取这些值。 我已经读过这个但是d +并不适用于浮点数。

在Float中,为什么?

long b = 99; float c = 99.0F; //b = c; //Error : Cannot implicitly convert type ‘float’ to ‘long’. c = b; // Running Successfully. Why? 为什么数据类型的大小和隐式转换没有问题? 我们知道float和long的大小不同,下面给出了…… Console.WriteLine(“Long : ” + sizeof(long)); // Output –> Long : 8 Console.WriteLine(“Float : ” + sizeof(float));// Output –> Float: 4

在编译64位时导致FP精度严重下降的原因是什么?

平台:C#使用Visual Studio 2013。 我有一个运行在64位Haswell CPU上的Windows应用程序,它正常工作,启用了“Prefer 32-bit”。 我决定通过取消选择’Prefer 32-bit’来升级到’Prefer 64-bit’,并且应用程序的算法突然变为不正确的值。 我失去了算术精度的29位 (这是我对双精度浮点尾数和单精度浮点尾数大小差异的估计)。 算术精度的差异很大! C#代码……测试用例: using System; class lngfltdbl { static void Main() { long lng = 2026872; float flt = 0.3F; double dbl = lng + flt; Console.WriteLine(dbl); } } 预期结果(选择’首选32位’时): dbl == 2026872.30000001 (PERFECT! CORRECT to 14 decimal places) 获得的结果(取消选择“首选32位”时): dbl == 2026872.25 (ERROR! CORRECT […]

在SQL Server中保存浮点值

我有一个简单的Web应用程序,并希望在SQL服务器中保存一些Float或Double格式。 但是有一个问题,当我尝试保存123.66时,在表中我看到123.6600003662109存储了。 保存在DB上时,为什么我的浮点数改变了? 我该如何解决这个错误? 谢谢

解析字符串以浮点数C#

我在字符串中有浮点数。 有一个问题。 数字使用“。” 不是“,”作为小数点。 此代码无效: MyNumber = float.Parse(“123.5”); 我知道我可以使用字符串替换function在解析之前“修复”此字符串。 MyNumber = float.Parse(“123.5”.Replace(‘.’,’,’); 但还有其他办法吗?

比较Unity中的浮动

我的场景中有6个InputFields。 他们的内容类型是十进制。 我从这些输入字段中获取值并检查它们的总和是否等于100.02。 我在所有人中输入16.67。 float fireP = float.Parse(firePercentage.text); float waterP = float.Parse(waterPercentage.text); float lightP = float.Parse(lightPercentage.text); float nightP = float.Parse(nightPercentage.text); float natureP = float.Parse(naturePercentage.text); float healthP = float.Parse(healthPercentage.text); float total = fireP + waterP + lightP + nightP + natureP + healthP; if (total == 100.02f) { Debug.Log(“It’s equal”); } else { Debug.Log(” Not equal. […]