有没有办法设置std :: ostream输出的"最小"小数位数?
例如,假设我有两个我想要打印的未知双变量(为了说明起见,这里添加的值):
double a = 0;
double b = 0.123456789;
Run Code Online (Sandbox Code Playgroud)
我可以设置我的最大小数精度,以便我输出b
完全
std::cout << std::setprecision(9) << b << std::endl;
>>> 0.123456789
Run Code Online (Sandbox Code Playgroud)
有没有办法设置"最小"精度(最小小数位数),同时保持"最大"精度,以便
std::cout << a << std::endl << b << std::endl;
Run Code Online (Sandbox Code Playgroud)
产量
0.0
0.123456789
Run Code Online (Sandbox Code Playgroud)
不
0
0.123456789
Run Code Online (Sandbox Code Playgroud)
?
谢谢!菲尔
对此的简短回答是"不".该流只有一个精度设置,无法区分最大和最小精度.谢谢大家的慷慨建议!
只给出一个std :: string迭代器,是否可以确定字符串的起点和终点?假设我无法访问字符串对象,因此无法调用string.begin()和string.end(),我所能做的就是递增或递减迭代器并测试值.
谢谢,菲尔
如果我有一个通过符号链接执行的python脚本,有没有办法可以找到脚本的路径而不是符号链接?我已尝试使用此问题中建议的方法,但它们始终返回符号链接的路径,而不是脚本.
例如,当它保存为我的"/usr/home/philboltt/scripts/test.py"时:
#!/usr/bin/python
import sys
print sys.argv[0]
print __file__
Run Code Online (Sandbox Code Playgroud)
然后我创建了这个符号链接
ln -s /usr/home/philboltt/scripts/test.py /usr/home/philboltt/test
Run Code Online (Sandbox Code Playgroud)
并使用执行脚本
/usr/home/philboltt/test
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
/usr/home/philboltt/test
/usr/home/philboltt/test
Run Code Online (Sandbox Code Playgroud)
谢谢!菲尔