以十进制显示一个小的双精度数,不是科学格式 C++ /CLR

Displaying a small double in in decimal, not scientific format C++ /CLR

我有像 0.00006 这样的双打,它在显示时切换到科学格式(类似于 6E-05)。 我尝试了 Math::Round(doublenumber, 5),但它不能对小于 0.0001 的数字进行舍入。所以四舍五入 0.00016 工作正常,但 0.00006 不行,我想打印 0.00006 而不是我表格中的科学数字。 有帮助吗?

使用Double.ToString(String^) with the "F" format string。这会强制使用定点格式。

我的测试程序:

int main(array<System::String^>^ args)
{
    double d = 0.00006;
    Debug::WriteLine(d.ToString("f")); // Uses the default precision value, 2
    Debug::WriteLine(d.ToString("f5"));
    Debug::WriteLine(d.ToString("f9"));
    Debug::WriteLine(d.ToString("f99")); // Highest supported

    return 0;
}

结果:

0.00
0.00006
0.000060000
0.000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000