I am adding two values together and it is rounding up but I don't need it to round up.
2 次查看(过去 30 天)
显示 更早的评论
material_cost = total * 3.67;
shipping_cost = total * 0.73;
total_cost = material_cost + shipping_cost;
fprintf('The material cost is $%0.2f. \n', material_cost);
fprintf('The shipping cost is $%0.2f. \n', shipping_cost);
fprintf('The total cost is $%0.2f. \n', total_cost);
so it prints out:
The material cost is $19.76.
The shipping cost is $3.93.
The total cost is $23.70.
the values are actually 19.7641, 3.9313, 23.6954 in the workspace.
How do I stop it from rounding the hidden numbers?
0 个评论
采纳的回答
Image Analyst
2022-2-16
Use more decimal places of precision if you want. Instead of 2 with $%0.2f you can use 6 with $%0.6f.
5 个评论
Image Analyst
2022-2-16
OK, great, but could you click the "Accept this answer" link? Thanks in advance. 🙂
DGM
2022-2-16
Since it's not really clear which behavior you want, note that the behavior of floor() and fix() differ and may matter if you process negative inputs.
更多回答(1 个)
DGM
2022-2-16
编辑:DGM
2022-2-16
If you simply want to truncate the values to integer cents, consider the example:
A = [19.7641, 3.9313, 23.6954]
B = truncatecents(A)
fprintf('before truncation: %.2f\n',A(3))
fprintf('after truncation: %.2f\n',B(3))
function out = truncatecents(in)
out = fix(in*100)/100; % truncate toward zero
end
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!