草庐IT

malign-double

全部标签

c++ - 使用 epsilon 将 double 与零进行比较

今天,我翻阅了一些C++代码(由其他人编写),发现了这个部分:doublesomeValue=...if(someValue::epsilon()&&someValue>-std::numeric_limits::epsilon()){someValue=0.0;}我正在尝试弄清楚这是否有意义。epsilon()的文档说:Thefunctionreturnsthedifferencebetween1andthesmallestvaluegreaterthan1thatisrepresentable[byadouble].这是否也适用于0,即epsilon()是大于0的最小值?或者0和0

c++ - 使用 epsilon 将 double 与零进行比较

今天,我翻阅了一些C++代码(由其他人编写),发现了这个部分:doublesomeValue=...if(someValue::epsilon()&&someValue>-std::numeric_limits::epsilon()){someValue=0.0;}我正在尝试弄清楚这是否有意义。epsilon()的文档说:Thefunctionreturnsthedifferencebetween1andthesmallestvaluegreaterthan1thatisrepresentable[byadouble].这是否也适用于0,即epsilon()是大于0的最小值?或者0和0

postgresql - 在 PostgreSQL 中格式化 double

我有一个包含3列的表格:customer_namevarchar,account_typevarchar,current_balancedoubleprecisioncurrent_balance的示例值:12001500.51500Iwantthemtodisplaylikethis:1200.001500.501500.00Itriedthefollowingquery:SELECTto_char(current_balance,'9999999999999999D99')FROMbank;它按照我想要的方式格式化,但在开头添加了一个空格。如何解决这个问题?有没有更好的格式化方式?

postgresql - 在 PostgreSQL 中格式化 double

我有一个包含3列的表格:customer_namevarchar,account_typevarchar,current_balancedoubleprecisioncurrent_balance的示例值:12001500.51500Iwantthemtodisplaylikethis:1200.001500.501500.00Itriedthefollowingquery:SELECTto_char(current_balance,'9999999999999999D99')FROMbank;它按照我想要的方式格式化,但在开头添加了一个空格。如何解决这个问题?有没有更好的格式化方式?

c++ - 将 double 指数的可移植打印到 C++ iostreams

我想以可移植的方式(GCC、clang、MSVC++)将double值打印到std::cout以便输出在所有平台上都是相同的。我对指数的格式有疑问。下面的程序#includeintmain(){std::coutGCC有这个输出:1e-08和下面的MSVC输出1e-008如何使两个输出相同?如果这是一个愚蠢的问题,我很抱歉,但到目前为止我还没有找到答案。所有格式似乎都围绕尾数之前所有内容的格式演变......编辑:GCC的输出是1e-08而不是1e-8(如最初所述),因此它符合。很抱歉造成困惑。EDIT2:实际上根据Dietmar的评论将“尾数”重命名为“指数”。Therealsois

c++ - 将 double 指数的可移植打印到 C++ iostreams

我想以可移植的方式(GCC、clang、MSVC++)将double值打印到std::cout以便输出在所有平台上都是相同的。我对指数的格式有疑问。下面的程序#includeintmain(){std::coutGCC有这个输出:1e-08和下面的MSVC输出1e-008如何使两个输出相同?如果这是一个愚蠢的问题,我很抱歉,但到目前为止我还没有找到答案。所有格式似乎都围绕尾数之前所有内容的格式演变......编辑:GCC的输出是1e-08而不是1e-8(如最初所述),因此它符合。很抱歉造成困惑。EDIT2:实际上根据Dietmar的评论将“尾数”重命名为“指数”。Therealsois

c# - 如何将 double 格式设置为四舍五入到最接近的美元的货币?

我现在有doublenumba=5212.6312String.Format("{0:C}",Convert.ToInt32(numba))这会给我$5,213.00但我不想要“.00”。我知道我可以每次都删除字符串的最后三个字符来达到效果,但似乎应该有更简单的方法。 最佳答案 首先-不要将货币保存在double中-改为使用decimal。每次。然后使用“C0”作为格式说明符:decimalnumba=5212.6312M;strings=numba.ToString("C0"); 关于

c# - 如何将 double 格式设置为四舍五入到最接近的美元的货币?

我现在有doublenumba=5212.6312String.Format("{0:C}",Convert.ToInt32(numba))这会给我$5,213.00但我不想要“.00”。我知道我可以每次都删除字符串的最后三个字符来达到效果,但似乎应该有更简单的方法。 最佳答案 首先-不要将货币保存在double中-改为使用decimal。每次。然后使用“C0”作为格式说明符:decimalnumba=5212.6312M;strings=numba.ToString("C0"); 关于

c# - 在 C# 中格式化 double 输出

运行与IsdoubleMultiplicationBrokenin.NET?相关的快速实验并阅读了几篇关于C#字符串格式的文章,我认为:{doublei=10*0.69;Console.WriteLine(i);Console.WriteLine(String.Format("{0:F20}",i));Console.WriteLine(String.Format("+{0:F20}",6.9-i));Console.WriteLine(String.Format("={0:F20}",6.9));}将是此C代码的C#等效项:{doublei=10*0.69;printf("%f\n"

c# - 在 C# 中格式化 double 输出

运行与IsdoubleMultiplicationBrokenin.NET?相关的快速实验并阅读了几篇关于C#字符串格式的文章,我认为:{doublei=10*0.69;Console.WriteLine(i);Console.WriteLine(String.Format("{0:F20}",i));Console.WriteLine(String.Format("+{0:F20}",6.9-i));Console.WriteLine(String.Format("={0:F20}",6.9));}将是此C代码的C#等效项:{doublei=10*0.69;printf("%f\n"