此问题已在此处有答案:
How do I restrict a float value to only two places after the decimal point in C?(17回答)
关闭27天前。
我正在使用这段代码,在用户输入78.5税的情况下,从5.495四舍五入到5.50,我希望它简单地删除小数点后第二位的任何内容,而不进行四舍五入。
#include "cs50.h"
#include <stdio.h>
int main()
{
float charge = get_float("Enter the charge for food: ");
float tip = charge/100 * 18;
printf("Tip: $%.2f\n", tip);
float tax = charge/100 * 7;
printf("Tax: $%.2f\n", tax);
float total = charge + tip + tax;
printf("Total: $%.2f", total);
}
我尝试使用.f2,但它似乎仍然是四舍五入的数字,如在text引用。我也使用在线GDB,如果这改变了什么。
1条答案
按热度按时间ut6juiuv1#
我不知道这是否是一个有效的方法,但我能想到的最简单的方法是:将数字乘以1000,去掉最后一个数字,然后再除以1000。大概是这样的:
或者,您可以通过转换为整数来实现这一点。
这条路似乎更好。