如何在C中格式化浮点数而没有高位数字?

问题描述 投票:0回答:1

我想输出数据看起来像这样

input : 1999.99
output: 999.99 

我想剪掉多余的数据。

我已经使用过这种C格式

%.2f  ==> 10.44, 23.23, 5.67

现在我需要在小数点前减少。

有什么解决方法吗?

c format numbers double
1个回答
1
投票
fmod()功能获得所要求的[截断

额外高位数字:

void format_3_2(double input) { printf("%.2f", fmod(input, 1000.0)); }
输入:1999.99输出:999.99

但是请注意,您还应该使用fmod()函数对输入值

之前进行四舍五入,以避免出现这种情况:printf("%.2f", fmod(1999.999, 1000.0));-> 1000.00。为此请使用round功能:

void format_3_2(double input) { printf("%.2f", fmod(round(input * 100.0)) / 100.0, 1000.0)); }
输入:1999.999输出:0.00
© www.soinside.com 2019 - 2024. All rights reserved.