gpt4 book ai didi

c - 在 c 中不使用 printf() 打印 float

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:25 24 4
gpt4 key购买 nike

我正在尝试编写我的 printf() 函数。我想打印 float / double 值。到目前为止,这是我设法做到的。

static void ft_float(va_list *ap, t_flag *flags)
{
double myfloat;
signed long int decipart;
signed long int intpart;

myfloat = va_arg(*ap, double);
if (myfloat < 0)
{
ft_myputchar('-');
myfloat *= -1;
}
intpart = (signed long int)myfloat;
ft_putnbr(intpart);
ft_myputchar('.');
myfloat -= intpart;
myfloat *= 1000000; //upto 6 decimal points
decipart = (signed long int)(myfloat + 0.5); //+0.5 to round of the value
ft_putnbr(decipart);
}

由于显而易见的原因,代码适用于 float ,如 1.424352、12313.1341414 等。但当小数点后的值小于 1 时,例如 1.004243、12313.0001341 等。

最佳答案

函数 printf 可用于用零填充值。 flag 0设置padding为0,width指定最少写入的字符数,必要时使用左边的padding。

只需使用格式为 "%06ld" 的 printf decipart

关于c - 在 c 中不使用 printf() 打印 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com