我为我在c中的一个赋值写了一些代码.代码没有任何语法错误,但它打印的结果是错误的,我不知道为什么.我try 将我想要的值赋给Result变量并将其打印出来,结果很好.以下是代码:

#include <stdio.h>

int main(){
long kwdikos;
double ethsios_misthos, evdomadiaia_amoivh, amoivh_ana_ora;
int ores_ergasias;

printf("Dwse ton kwdiko: ");
scanf("%ld", &kwdikos);

if (kwdikos >= 1000){
    printf("Dwse ton ethsio mistho: ");
    scanf("%g", &ethsios_misthos);
    evdomadiaia_amoivh = ethsios_misthos / 52;
    printf("H evdomadiaia amoivh einai: %g", evdomadiaia_amoivh);
}
else{
    printf("Dwse tis ores evdomadiaias ergasias: ");
    scanf("%d", &ores_ergasias);
    printf("Dwse thn amoivh ana ora: ");
    scanf("%g",&amoivh_ana_ora);
    if (ores_ergasias > 40){
        evdomadiaia_amoivh = 40 * amoivh_ana_ora + (ores_ergasias - 40) * 1.5 * amoivh_ana_ora;
    }
    else{
        evdomadiaia_amoivh = ores_ergasias * amoivh_ana_ora;
    }
    printf("H evdomadiaia amoivh einai: %g", evdomadiaia_amoivh);
}
return 0;
}

我希望evdomadiaia_amoivh是一个数字,但是当我运行这段代码并打印它时,结果是1.09e,我不知道为什么.

推荐答案

当值的大小既不大也不小时,printf("%g", some_floating_point_value);以类似于"%f"的定点格式打印.它以指数格式打印,否则类似于"%e".示例:1.09e08

使用"%f""%F"始终以定点方式打印.

C++相关问答推荐

DPDK-DumpCap不捕获端口上的传入数据包

这是一个合法的C Strdup函数吗?

在C++中头文件中声明外部 struct

为什么GCC C23中的关键字FALSE不是整数常量表达式?

有什么方法可以将字符串与我们 Select 的子字符串分开吗?喜欢:SIN(LOG(10))

如何编写一个for循环来计算C中各项的总和?

如何读取文件并将内容保存在字符串中?(在C语言中,没有崩溃或核心转储错误)

如何使用FSeek和文件流指针在C中查找文件的前一个元素和前一个减go 一个元素

获取前2个连续1比特的索引的有效方法

如何在c中使用具有不同变量类型的内存分配?

Go和C中的数据 struct 对齐差异

C语言中奇怪的输出打印数组

如何使用calloc和snprintf

被调用方函数内部的C-Struct变量,它是指针还是无关紧要

一元运算符

如何修复数组数据与列标题未对齐的问题?

可以从指针数组中的值初始化指针吗?

C 中 struct 体自赋值是否安全?特别是如果一侧是指向 struct 的指针?

获取 struct 中匿名 struct 的大小

定义 int a = 0, b = a++, c = a++;在 C 中定义了行为吗?