In Python: Given 4 floating-point numbers. Use a string formatting expression with conversion specifiers to output their product and their average as integers (rounded), then as floating-point numbers. Output each rounded integer using the following: print('{:.0f}'.format(your_value)) Output each floating-point value with three digits after the decimal point, which can be achieved as follows: print('{:.3f}'.format(your_value)) My original code: import math num1 = float(input()) num2 = float(input()) num3 = float(input()) num4 = float(input()) num_product_float = num1 * num2 * num3 * num4 num_product = int(num_product_float) num_average_float = (num1 + num2 + num3 + num4) / 4 num_average = int(num_average_float) print('{:.0f} {:.0f}'.format(num_product, num_average)) print('{:.3f} {:.3f}'.format(num_product_float, num_average_float)) Input: 8.3 10.4 5.0 4.8 My output 2071 7 2071.680 7.125 Expected output 2072 7 2071.680 7.125 Here the expected outcome is rounding up for some reason so I edited my code: num_product_float = num1 * num2 * num3 * num4 num_product = math.ceil(num_product_float) So the first input set (8.3 10.4 5.0 4.8) is now coming out correct, but the second is wrong: Input -2.3 -9.0 -6.5 -5.7 My output 767 -5 766.935 -5.875 Expected output 767 -6 766.935 -5.875 This seems to be rounding down, so I changed my code again: num_average_float = (num1 + num2 + num3 + num4) / 4 num_average = math.floor(num_average_float) Now I got the first and second input values correct, however the third is STILL coming out wrong: Input: -15.2 10.3 7.8 -9.7 My output 11846 -2 11845.330 -1.700 Expected output 11845 -2 11845.330 -1.700 At this point I am lost, when I did the integer converson using int() I know that the program always drops the digits after the decimal however for some reason the output that is expected seems to be rounding up or down. So even though I adjusted using the math.ceil() and math.floor() code I still cant get the final input set to come out right.
In Python:
Given 4 floating-point numbers. Use a string formatting expression with conversion specifiers to output their product and their average as integers (rounded), then as floating-point numbers.
Output each rounded integer using the following:
print('{:.0f}'.format(your_value))
Output each floating-point value with three digits after the decimal point, which can be achieved as follows:
print('{:.3f}'.format(your_value))
My original code:
import math
num1 = float(input())
num2 = float(input())
num3 = float(input())
num4 = float(input())
num_product_float = num1 * num2 * num3 * num4
num_product = int(num_product_float)
num_average_float = (num1 + num2 + num3 + num4) / 4
num_average = int(num_average_float)
print('{:.0f} {:.0f}'.format(num_product, num_average))
print('{:.3f} {:.3f}'.format(num_product_float, num_average_float))
num_product_float = num1 * num2 * num3 * num4
num_product = math.ceil(num_product_float)
So the first input set (8.3 10.4 5.0 4.8) is now coming out correct, but the second is wrong:
num_average_float = (num1 + num2 + num3 + num4) / 4
num_average = math.floor(num_average_float)
Now I got the first and second input values correct, however the third is STILL coming out wrong:
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 4 images