在一次存储经纬度的字符串时,虽然经纬度是用double存的,但转字符串的精度不对,然后才发现%lf精度默认只有6位。C++20标准提供的format方法倒是可以完整的输出字符串。测试以下代码:
double a = 123.12345678;
printf("%lf \r\n", a);
printf("%.8lf \r\n", a);
printf("%.012lf \r\n", a);
printf("%.03lf \r\n", a);
cout << std::format("{}", a) << endl;
输出为:
123.123457
123.12345678
123.123456780000
123.123
123.12345678