Tag: double

如果没有OverflowException,将“1.79769313486232E + 308”转换为double?

我有这个字符串“1.79769313486232E + 308”,我试图将其转换为.NET数值(双?)但我得到以下exception。 我正在使用Convert.ToDouble() 。 这种转换的正确方法是什么? OverflowException:对于Double,值太大或太小

获得下一个最小的双号

作为unit testing的一部分,我需要测试一些边界条件。 一种方法接受System.Double参数。 有没有办法获得下一个最小的双值? (即将尾数减1个单位值)? 我考虑使用Double.Epsilon但这是不可靠的,因为它只是从零开始的最小增量,因此不适用于较大的值(即9999999999 – Double.Epsilon == 9999999999 )。 那么所需的算法或代码是什么: NextSmallest(Double d) < d ……总是如此。

Double ToString – 没有科学记数法

我刚刚遇到了一个很棒的“function”,如果有足够的小数位,.NET 默认会使用科学记数法做Double.ToString() 。 .005.ToString() // “.005” .00005.ToString() // “5E-05” 有没有人知道一种有效的方法让它在标准(非科学)符号中显示为字符串? 我已经看到了这个问题 ,但是前两个答案对我来说似乎有些苛刻,因为他们都做了Double.ToString()然后重新格式化结果。 谢谢你的帮助。 编辑: 所需的输出: .00005.ToString() == “.00005” EDIT2: 所有重复和结束投票是什么? 我在问题中特别说,类似的问题没有令人满意的答案。 这个网站上的人太高兴了。 我的解决方案 如果它对任何人都有用: /// /// Converts the double to a standard notation string. /// /// The double to convert. /// The double as a standard notation string. public static String ToStandardNotationString(this double d) { […]

为什么我的带有双args的Web API方法没有被调用?

我有一个Web API方法,需要两个双参数: 存储库界面: public interface IInventoryItemRepository { . . . IEnumerable GetDepartmentRange(double deptBegin, double deptEnd); . . . } 库: public IEnumerable GetDepartmentRange(double deptBegin, double deptEnd) { // Break the doubles into their component parts: int deptStartWhole = (int)Math.Truncate(deptBegin); int startFraction = (int)((deptBegin – deptStartWhole) * 100); int deptEndWhole = (int)Math.Truncate(deptEnd); int endFraction = (int)((deptBegin […]

输入字符串的格式不正确#2

double temp; temp = (double)Convert.ToDouble(“1234.5678”); 嘿Lads和女士们,我不能为我的生活弄清楚为什么上面的行不起作用。 上面的行给出了一个运行时错误,说明了; mscorlib.dll中发生了System.FormatException类型的未处理exception 附加信息:输入字符串格式不正确。

C#将20位精度双精度转换为字符串并再次返回

在C#中。 我有一个具有20位精度的双精度(我从数据库中提取)。 在Visual Studio中(使用QuickWatch)我可以看到double的值为= 0.00034101243963859839。 我希望在文本框中显示此值,然后在我取出它并将其转换回double时使其具有相同的值。 但我总是失去最后两位数 我尝试过以下方法: double d = 0.00034101243963859839; string s = d.ToString(); string s2 = d.ToString(“F20”); string s3 = d.ToString(“0.00000000000000000000”); — 20 0’s string s4 = (d*100d).ToString(); 在这些情况下: s = 0.000341012439638598 s2 = 0.00034101243963859800 s3 = 0.00034101243963859800 s4 = 0.0341012439638598 我希望能够做到以下几点: double d = 0.00034101243963859839; string s = d.ToString(); //… double […]