我有这段代码:
#include <stdio.h>
int main(void)
{
double infre = 11e10;
double c = 2.99795e8;
double wavelength = c/infre;
double delx = 0.600000000e-04;
double nperdt = 2*((int)(wavelength/delx));
double dt = 1.0/infre/(double)nperdt;
printf("%.11f", dt);
return 0;
}
现在dt
应该非常小。那么有什么可以让我在分裂时获得这个价值,因为目前我正在获得0.0
答案 0 :(得分:2)
那么你可以尝试例如增加“。”之后显示的数字。看起来你的值在10 ^ -13范围内,你目前只显示小数点后的前11位数。例如,"%.19f"
将显示非零结果。另外,您可以使用%e
以指数格式打印它们,这实际上是这种情况下的首选解决方案。