除以大数后得到十进制值

时间:2015-06-25 10:24:17

标签: c

我有这段代码:

#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

1 个答案:

答案 0 :(得分:2)

那么你可以尝试例如增加“。”之后显示的数字。看起来你的值在10 ^ -13范围内,你目前只显示小数点后的前11位数。例如,"%.19f"将显示非零结果。另外,您可以使用%e以指数格式打印它们,这实际上是这种情况下的首选解决方案。